最近一直在研究WCF, 其中也遇到很多问题. 其中一个就是有一个下载的实例中的*.svc文件是hosting在IIS中的. 因为在下OS是vista, 所以很多细节还真不是了解的那么清楚. 所以就在选择了虚拟目录后, 创建了一个application在iis 7 中.
发布后, 却发现运行报错:
HTTP Error 404.3 - Not Found
The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.
起初我以为是我iis 7 配置有问题, 于是我创建运行asp.net的程序发布, web service发布. 都可以很正常的运行, 然后就在网上查找相关信息. 才发现原来在vista下面想要WCF hosting IIS7, 还需要添加两个非常重要的 components没有添加.
是哪两个组件没有添加呢? control panel-->Programs and Features-->Turn Windows features on or off
会看到下图.
选上黄色标注的两个components, 点击OK. 重启.......
oh, yeah~! 终于可以成功访问了!
Tips:
WCF http Activation: 在vista下面, 只有添加了该组件才能通过http 协议和WCF service程序通讯. 所以如果大家在IE里面不能访问WCF service程序, 那么请首先检查改组件是否已经安装.
WCF non-http Activation: 同上, 它是是支持tcp协议和WCF service程序通讯的组件.
(谢谢 菜鸟2009提醒, vista or win2008, 以及win7 里面的IIS也都是这样).