提问



我试图在2012年版本8400上运行IIS8中运行的wcf服务。


安装web角色时,wcf的东西(3.51以下)并没有像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.


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


该网站使用经典管道以使用模拟。

最佳参考


进一步来说:



  1. 运行Server Manager(在任务栏和开始菜单上)

  2. 选择要管理的服务器(可能是本地服务器)

  3. 向下滚动到Roles and Features部分。

  4. 从任务下拉列表中选择Add Role or Feature

  5. Add Role or Feature Wizard对话框中,单击左侧页面列表中的Features

  6. 根据您安装的内容展开".Net 3.5"".Net 4.5"。 (如果你没有,你可以回到roles屏幕添加。

  7. WCF Services下,选中HTTP-Activation框。如果您知道需要它们(tcp,命名管道等),也可以添加非http类型。

  8. 单击"Install"按钮。


其它参考1


我必须在.NET Framework 4.5 Advanced Services> WCF Services中启用HTTP Activation




其它参考2


在打开或关闭Windows功能上打开以下项


a).Net Framework 3.5 - WCF HTTP激活和非Http激活


b)所有WCF服务

其它参考3


带有IIS8的Windows 8




  • 点击Windows+X

  • 选择Programs and Features(列表中的第一项)

  • 选择左侧的Turn Windows Features on or off

  • 展开.NET Framework 4.5 Advanced Services

  • 展开WCF Services

  • 启用HTTP Activation


其它参考4


我现在更喜欢通过脚本来做这件事


REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

REM Feature Install Complete
pause

其它参考5


我们设法通过以下方式解决Windows Server 2012下的错误:



  1. 从删除角色和功能向导中删除.NET Framework 4.5功能/ASP.NET 4.5及其所有相关功能

  2. 重新安装已删除的功能。



它接缝的安装顺序是原因。


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

其它参考6


对于Windows 8计算机,没有服务器管理器应用程序(至少我无法找到它)。


虽然我能够解决问题。我不确定我做了以下操作的顺序,但看起来像以下一些/几个操作有帮助:



  1. 在打开或关闭Windows功能上打开以下内容a).Net Framework 3.5 - WCF HTTP激活和非Http激活b)所有WCF服务下(在此问题的答案之一中指定)

  2. 在%windir%\\ Microsoft.NET \\ Framework \\ v3.0 \\ Windows Communication Foundation \\文件夹中执行ServiceModelReg.exe -i

  3. 通过两个命令注册ASP.NET 2.0(在文件夹C:\\ WINDOWS \\ Microsoft.NET \\ Framework \\ v2.0.50727中):


    aspnet_regiis -gaNT AUTHORITY \\ NETWORK SERVICE
    aspnet_regiis -iru

  4. 重新启动PC ...看起来像是因为操作## 3和4在我的ASP.NET配置中被破坏了

  5. 重复行动#2

  6. 从程序和功能中安装另外两个选项:.Net Framework 4.5高级服务。我检查了两个子选项:ASP.NET 4.5和WCF服务

  7. 重新启动应用池。



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

其它参考7


在Windows 8或Windows Server 2012上配置IIS 8时,安装顺序非常重要。


我在配置IIS 8时遇到了很多问题,但最后这些链接对我有所帮助



  • 安装IIS 8

  • 配置WCF


其它参考8


使用PowerShell,您可以安装所需的功能:[27] [28]


Add-WindowsFeature 'NET-HTTP-Activation'

其它参考9


在Windows 10(客户端)上,您还可以使用此脚本


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


请注意,这是与服务器skus不同的命令

其它参考10


这是.NET框架的HTTP激活功能
Windows Process Activation功能也是必需的

其它参考11


这对我来说真的很傻。在这里添加它,因为它是svc 404问题上比较流行的线程之一。


我在项目设置\\ Web \\ Project URL中粘贴了:


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


并且由于某种未知的原因(已经完成了这一千次)并没有直接发现.svc文件的名称已经结束了。


DOH!


我刚刚从我的WCF测试客户端粘贴了地址,并且没有对它进行过充分的检查。在后台做的是在.svc地址创建一个IIS应用程序,我从IIS中得不到任何东西。我无法解决问题我怎么都不能击中.svc文件。


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


经过近20年的努力,你仍然可以犯学生错误/菜鸟错误。希望这有助于某人。