[英]HTTP 404 when accessing .svc file in IIS
我最近创建了一个 WCF 服务,在从 Visual Studio 2008 测试时运行良好。但是当我将项目部署到 IIS 并尝试从 IIS 访问 .svc 文件时,我收到此错误:
"Server Error in '/' Application.The resource cannot be found. "
过去 4 天我一直有这个问题。
在 IIS 管理器的处理程序映射中,我可以看到 .svc 的两个条目:
svc-Integrated and svc-ISAPI-2.0
您需要将 SVC 扩展的映射添加到 ASP.NET。 最简单的方法是从 C:\\Windows\\Microsoft.NET\\Framework\\v3.0\\Windows Communication Foundation 运行ServiceModelReg.exe -i
。 如果您还没有启用 ASP.NET,您可能还需要启用它。
如果您使用的是 Windows Server 2012 或 2016,请改为按照以下说明操作:
我看到你已经解决了你的问题——但为了后代:
我们遇到了类似的问题,并且 SVC 处理程序已经正确安装。 我们的问题是 ExtensionlessUrl 处理程序在到达 SVC 处理程序之前处理请求。
要检查这一点 - 在 Web 服务器级别的 IIS 管理器中的处理程序映射中,按顺序查看处理程序列表(这是右侧的一个选项)。 如果各种 ExtensionlessUrl 处理程序出现在 SVC 处理程序上方,则反复向下移动它们,直到它们位于底部。
我今天遇到了同样的问题。
对我来说,解决方案是进入 IIS,右键单击新的网站名称,选择属性,ASP.Net,然后将 ASP.Net 版本从“1.1.4322”(它已设置为默认值)更改为到 2.0.50727。
完成此操作后,我可以右键单击 .svc 文件,单击“浏览”并查看友好的服务网页。
在 Windows 10 中启用 IIS 6 管理兼容性后,这也可能成为问题。在 WCF 服务下设置框架 HTTP 激活将解决该问题。
验证您的目录是否已转换为应用程序是您的 IIS。
上述解决方案均未为我解决此错误。 我必须在 web.config 中设置以下内容:
system.servicemodel > bindings > webHttpBinding > binding:
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
我想借此机会再次诅咒微软,因为它在 .NET Framework 上造成了如此巨大的混乱,让开发人员的生活如此悲惨这么久!
就我而言,该错误是由文件 applicationhost.config (\\System32\\inetsrv\\config) 中的不正确映射设置引起的。 出于某种原因,Visual Studio 2013 在 IIS 中创建虚拟目录时损坏了它。 修复方法是手动编辑文件中的站点部分。
在我的情况下,Win 10。文件 applicationHost.config 已被 VS 2012 损坏。您可以在 C:\\inetpub\\history 下获取此文件的历史记录副本。 然后重新启动 IIS,它可以正常工作。
添加请求过滤中允许的 .svc 后缀对我来说很有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.