.Net3.5的WCF服务在IIS7中发布后,IE访问.svc文件时,报错:
HTTP 错误 404.17 - Not Found
请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
解决方式1:在WCF站点下建一个静态html页面,可以正常访问,排除IIS问题。
解决方式2:该站点的“视图”----“处理程序映射”----在右侧的菜单列表中点击“添加模板映射”,添加SVC文件访问,仍旧不行。
后来缍发现,原来是由于装了.Net Framework4.0 beta和vs.net 2010 beta2导致的,*.svc文件已经被.Net Framework4.0的处理程序aspnet_isapi.dll接管,,把原先的3.5给覆盖了。这虽不影响开发,但会影响WCF布署。
解决方式3:站点应用程序池重新指定成.Net2.0中的处理程序aspnet_isapi.dll处理也不行。(注:Net3.0\3.5没带处理程序aspnet_isapi.dll,所以IIS中指定网站适用框架时,看不到.Net3.0\3.5)
最后解决方案:
重新注册.Net 3.5的WCF。即OK。方法执行如下文件:
C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe即可。
再次访问WCF的SVC文件,即成功。