我刚刚收到一台新的开发笔记本电脑,现在我无法在新笔记本电脑上运行我的一个WCF服务。
Windows 7企业版
IIS 7.5.7600.16385
已安装的Windows功能:
我放弃了一个简单的" Hello World!"在WCF服务应用程序的根目录下的index.html文件。我能够提供.html文件。我的服务位于名为" Hosts"的子目录下。我还在该子目录下删除了一个简单的index.html文件 - 我也能够提供该文件。我不能提供任何我的.svc文件。
http://localhost/mywcfapplication/Hosts/IncidentService.svc
匿名身份验证 - "应用程序池身份"被选中
服务正在自己的应用程序池中运行。关于应用程序池:
我最近在测试环境中的新Windows Server 2012 R2 Web服务器上设置了这些服务(旧测试服务器已停用)。在服务器上,我必须向应用程序池用户授予文件系统目录(IIS_IUSRS \ apppoolname)的权限,但我的笔记本电脑似乎不喜欢这样。
当我尝试浏览此应用程序下的任何.svc文件时,我收到404.0错误。 IIS告诉我最可能的原因是:•Web服务器上不存在指定的目录或文件。 •URL包含印刷错误。 •自定义筛选器或模块(如URLScan)限制对文件的访问。
我已检查并重新检查了网址,我可以提供.html文件。我确认.svc文件确实存在。我不知所措。我忽略了什么?
研究:
IIS7.5 WCF Service - HTTP Error 401.3 (Even after adding IIS_IUSRS)
Windows 7 IIS7.5 and asp application Error HTTP 404.0 - Not Found
更新
6/8/15 - 我将IIS AppPool\AppPoolName
添加到IIS_IUSRS组。没有变化。
6/9/15 -
servicemodelreg -i
。没有变化。aspnet_regiis –i –enable
然后"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
2015年6月15日 - - 日志文件:u_ex150615.log
答案 0 :(得分:0)
我得到了完全相同的问题,并最终找到了解决方法。
关键是WCF
需要一个集成的管道才能正常工作。在Windows 7's IIS 7.7
我通过将Application Pool
设置为使用Integrated Pipeline
模式解决了问题(它位于Classic Mode
中)。但Windows Server 2003's IIS 6
不适用于集成管道,因此Microsoft .Net
使用Web Services Extensions
,您可以IIS 6
检查,Web Sites
正上方。确保.Net
中允许使用所需的Web Services Extensions
版本。您需要注册Service Model
扩展名。
以下是我的所作所为:
%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i