在IIS中访问.svc文件时的HTTP 404

时间:2010-04-09 17:02:10

标签: c# .net wcf

我最近创建了一个在Visual Studio 2008中测试时运行良好的WCF服务。但是当我将项目部署到IIS并尝试从IIS访问.svc文件时,我收到此错误:

"Server Error in '/' Application.The resource cannot be found.  "

过去4天我一直有这个问题。

在IIS管理器的Handler Mappings中,我可以看到.svc的两个条目:

svc-Integrated and svc-ISAPI-2.0

12 个答案:

答案 0 :(得分:79)

对我来说有什么用,在Windows 2012 Server R2上:

WCF HTTP 404

感谢Aaron D"

答案 1 :(得分:66)

您需要将SVC扩展的映射添加到ASP.NET。最简单的方法是从C:\ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation运行ServiceModelReg.exe -i。如果尚未启用ASP.NET,则可能还需要启用ASP.NET。


如果您使用的是Windows Server 2012或2016,请按照以下说明操作:

答案 2 :(得分:49)

我发现these instructions on a blog post表示这一步,对我有用(Windows 8,64位):

确保在Windows功能中,您在.Net框架下有两个WCF选项。所以转到控制面板 - >程序和功能 - >打开/关闭Windows功能 - >特点 - >添加功能 - > .NET Framework X.X功能。确保.Net框架说它已安装,并确保选中它下面的WCF激活节点(勾选复选框),并且还检查WCF激活下的两个选项。
These are:
* HTTP Activation
* Non-HTTP Activation
Both options need to be selected (checked box ticked).

答案 3 :(得分:4)

我看到你已经解决了你的问题 - 但对于子孙后代:

我们遇到了类似的问题,并且SVC处理程序已经正确安装。我们的问题是ExtensionlessUrl处理程序在它们到达SVC处理程序之前处理请求。

要检查这一点 - 在Web服务器级别的IIS管理器中的Handler Mappings中,按顺序查看处理程序列表(它是右侧的选项)。如果各种ExtensionlessUrl处理程序出现在SVC处理程序上方,则重复向下移动它们直到它们位于底部。

答案 4 :(得分:1)

验证您的目录是否已转换为应用程序是您的IIS。

答案 5 :(得分:1)

在Windows 10中启用IIS 6管理兼容性后,这也会成为一个问题。在WCF服务下设置框架HTTP激活将解决问题。

答案 6 :(得分:0)

在我的情况下,错误是由文件applicationhost.config(\ System32 \ inetsrv \ config)中的映射设置不正确引起的。出于某种原因,Visual Studio 2013在IIS中创建虚拟目录时损坏了它。修复是手动编辑文件中的站点部分。

答案 7 :(得分:0)

在server 2012中添加角色/功能的功能下有2个.net框架版本

一个。 3.5

湾4.5

根据使用的框架,您可以在WCF服务下启用HTTP-Activation。 :)

答案 8 :(得分:0)

在我的案例中,Win 10.文件applicationHost.config已被VS 2012损坏。您可以在C:\ inetpub \ history下复制此文件的历史记录。然后重新启动IIS,它可以正常工作。

答案 9 :(得分:0)

我必须在请求过滤设置中将扩展名.svc添加到允许的扩展名中(之前收到404.7错误)。

enter image description here

答案 10 :(得分:0)

在请求过滤中添加.svc后缀对我来说是成功的秘诀。

答案 11 :(得分:0)

以上解决方案均无法为我解决此错误。我必须在web.config中设置以下内容:

system.servicemodel > bindings > webHttpBinding > binding:
<security mode="Transport">
  <transport clientCredentialType="None" />
</security>

我想借此机会再次向Microsoft诅咒,因为它与.NET Framework造成了巨大的混乱,并使开发人员的生活如此悲惨!