在IIS8上的WCF; * .svc处理程序映射不起作用

我试图得到一个在2012年生成8400 IIS8运行的WCF服务。

在安装webangular色时,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. 

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

该网站正在使用经典的pipe道,以便使用模拟。

进一步来说:

  1. 运行Server Manager (在任务栏和开始菜单上)
  2. select要pipe理的服务器(可能是本地服务器)
  3. 向下滚动到“ Roles and Features ”部分。
  4. 从任务下拉列表中select“ Add Role or Feature
  5. 在“ Add Role or Feature Wizard ”对话框中,单击左侧页面列表中的“ Features ”。
  6. 展开".Net 3.5"".Net 4.5" ,具体取决于你已经安装。 (你可以回到“ roles ”屏幕添加,如果你没有。
  7. 在“ WCF Services ”下,选中“ HTTP-Activation ”框。 你也可以添加非httptypes,如果你知道你需要它们(tcp,命名pipe道等)。
  8. 点击"Install"button。

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

启用HTTP激活

在“打开或closuresWindowsfunction”中打开以下内容

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

b)所有在WCF服务下

Windows 8与IIS8

  • 点击Windows+X
  • selectPrograms and Features (列表上的第一项)
  • selectTurn Windows Features on or off左侧的Turn Windows Features on or off
  • 展开.NET Framework 4.5 Advanced Services
  • 展开WCF Services
  • 启用HTTP Activation

我更喜欢现在通过脚本来做到这一点

 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 

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

  1. 从“删除angular色和function向导”中删除.NET Framework 4.5function/ ASP.NET 4.5及其所有相关function
  2. 重新安装删除的function。

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

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

对于Windows 8计算机,没有“服务器pipe理器”应用程序(至less我无法find它)。

虽然我能解决这个问题 。 我不确定在哪个序列中我做了以下操作,但看起来像下面的一个/几个操作有帮助:

  1. 打开或closures以下function: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 -ga“NT AUTHORITY \ NETWORK SERVICE”aspnet_regiis -iru

  4. 重新启动的PC …它看起来像一个结果作为行动## 3和4在我的ASP.NETconfiguration中被破坏

  5. 重复操作#2

  6. 从“程序和function”安装两个其他选项:.Net Framework 4.5高级服务。 我检查了两个子选项:ASP.NET 4.5和WCF服务

  7. 重新启动应用程序池。

序列是疯狂的,但是这对我有帮助,可能会帮助其他

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

我面对很多configurationIIS 8的问题,但最终这些链接帮助了我

  • 安装IIS 8
  • configurationWCF

使用PowerShell,您可以安装所需的function:

 Add-WindowsFeature 'NET-HTTP-Activation' 

它是.NET框架的HTTP激活functionWindows过程激活function也是必需的

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

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

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

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

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

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

由于一些未知的原因(做了这一千次)没有立即发现.svc文件的名字是在最后。

DOH!

我刚刚从我的WCFtesting客户端粘贴了地址,并没有充分检查。 这在后台做了什么是在.svc地址创build一个IIS应用程序,我什么都没有得到IIS。 我无法解决如何甚至不能击中.svc文件。

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

在这20年后,你仍然可以让男生错误/新秀错误。 希望这有助于某人。