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

Att*_*lah 74 .net c# wcf

我最近创建了一个WCF服务,从Visual Studio 2008测试时工作正常.但是当我将项目部署到IIS并尝试从IIS访问.svc文件时,我收到此错误:

"Server Error in '/' Application.The resource cannot be found.  "
Run Code Online (Sandbox Code Playgroud)

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

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

svc-Integrated and svc-ISAPI-2.0
Run Code Online (Sandbox Code Playgroud)

Ste*_*hev 91

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

WCF HTTP 404

谢谢"Aaron D"

  • 这也适用于Windows Server 2016. (3认同)
  • 到目前为止最简单的选择. (2认同)
  • 出于某种原因,我必须为 3.5 和 4.5 安装该功能,并通过命令行:`dism /online /enable-feature /featurename:WCF-http-Activation45 /all` 和 `dism /online / enable-feature /featurename:WCF-http-Activation /all` (2认同)
  • @Rocklan 给出的 dism 命令工作得很好! (2认同)

tva*_*son 68

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


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

  • 重要说明:不要在安装了.NET 4.5的Server 2012上执行此操作.它搞砸了我,直到我运行ServiceModelReg.exe -ua.请参阅此处获取Server 2012解决方案:http://stackoverflow.com/questions/11116134/wcf-on-iis8-svc-handler-mapping-doesnt-work (22认同)

Aar*_*n D 53

在博客文章中发现了这些说明,表明这一步对我有用(Windows 8,64位):

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

  • 如果我可以不止一次投票,这让我发疯,干杯! (2认同)

小智 6

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

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

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