我正在尝试在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.
(我删除了静态文件处理程序。)
为了使用模拟,该站点正在使用经典的管道。
对于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.
序列有点疯狂,但这对我有帮助,可能也会对其他人有帮助
这对我来说真的很傻。在这里添加这个,因为它是svc 404问题上更受欢迎的线程之一。
我在我的项目设置的\ Web \项目URL,粘贴:
http://blah.webservice.local.blahblah.com/Blah.svc
由于一些未知的原因(已经这样做了1000次)没有立即发现.svc文件的名称在最后。
哎!
我刚刚从WCF测试客户端粘贴了这个地址,没有充分地检查它。这在后台所做的是在.svc地址创建一个IIS应用程序,我没有从IIS中得到任何东西。我不知道我怎么连。svc文件都打不到。
简单的修复,显然,只是在IIS中删除应用程序并更改项目URL。
在这一行干了将近20年之后,你仍然会犯小学生或新手犯的错误。希望这能帮助到一些人。