我正在尝试在Windows Server 2012 build 8400上的IIS8上运行WCF服务。

在安装web角色时,WCF的东西(在3.51之下)没有像Windows Server 2008那样被发现。

当安装svc处理程序映射是缺失的,所以我做了一个:

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i

现在处理程序映射在那里,但我仍然得到:

The resource you are looking for does not have a handler associated with it.

(我删除了静态文件处理程序。)

为了使用模拟,该站点正在使用经典的管道。


当前回答

它是。net框架的HTTP激活特性 Windows进程激活功能也是必需的

其他回答

对于Windows 8机器,没有“服务器管理器”应用程序(至少我没能找到它)。

不过我还是解决了这个问题。我不确定我在哪个顺序做了以下操作,但看起来以下操作中的一个/几个有帮助:

Turn ON the following on 'Turn Windows Features on or off' a) .Net Framework 3.5 - WCF HTTP Activation and Non-Http Activation b) all under WCF Services (as specified in one of the answers to this question) executed "ServiceModelReg.exe –i" in "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\" folder Registered ASP.NET 2.0 via two commands ( in folder C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727): aspnet_regiis -ga "NT AUTHORITY\NETWORK SERVICE" aspnet_regiis -iru Restarted PC... it looks like as a result as actions ## 3 and 4 something got broken in my ASP.NET configuration Repeat action #2 Install two other options from the "Programs and Features": .Net Framework 4.5 Advanced Services. I checked both sub options: ASP.NET 4.5 and WCF services Restart App Pool.

序列有点疯狂,但这对我有帮助,可能也会对其他人有帮助

Windows 8和IIS8

点击Windows + X 选择程序和功能(列表中的第一项) 在左侧选择“打开或关闭Windows功能” 展开。net Framework 4.5 Advanced Services 扩展WCF服务 启用HTTP激活

在windows 10(客户端)上,你也可以使用脚本

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

注意,这是一个不同于服务器skus的命令

我们设法解决了Windows Server 2012下的错误:

从“删除角色和功能向导”中删除。net Framework 4.5 Features/ASP。NET 4.5及其所有相关特性 重新安装已删除的特性。

原因似乎是安装的顺序。

另外,确保在WCF服务下安装了HTTP激活。

这对我来说真的很傻。在这里添加这个,因为它是svc 404问题上更受欢迎的线程之一。

我在我的项目设置的\ Web \项目URL,粘贴:

http://blah.webservice.local.blahblah.com/Blah.svc

由于一些未知的原因(已经这样做了1000次)没有立即发现.svc文件的名称在最后。

哎!

我刚刚从WCF测试客户端粘贴了这个地址,没有充分地检查它。这在后台所做的是在.svc地址创建一个IIS应用程序,我没有从IIS中得到任何东西。我不知道我怎么连。svc文件都打不到。

简单的修复,显然,只是在IIS中删除应用程序并更改项目URL。

在这一行干了将近20年之后,你仍然会犯小学生或新手犯的错误。希望这能帮助到一些人。