287

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

安装 Web 角色时,不会像在 Windows Server 2008 中那样找到 WCF 内容(3.51 下)。

安装时缺少 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.

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

该站点正在使用经典管道以使用模拟。

4

12 回答 12

579

进一步来说:

  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"按钮。
于 2012-09-20T19:28:27.510 回答
227

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

启用 HTTP 激活

于 2013-01-23T23:33:31.543 回答
46

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

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

b) 全部在 WCF 服务下

于 2012-08-27T09:17:12.790 回答
40

带有 IIS8 的 Windows 8

  • Windows+X
  • 选择Programs and Features(列表中的第一项)
  • Turn Windows Features on or off在左侧选择
  • 扩张.NET Framework 4.5 Advanced Services
  • 扩张WCF Services
  • 使能够HTTP Activation
于 2013-07-30T21:37:33.897 回答
28

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

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
于 2014-06-30T09:37:28.060 回答
10

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

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

似乎安装顺序是原因。

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

于 2013-03-11T09:53:32.887 回答
3

对于 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 -ga "NT AUTHORITY\NETWORK SERVICE" aspnet_regiis -iru

  4. 重新启动 PC...看起来,作为操作 ## 3 和 4 的结果,我的 ASP.NET 配置中出现了问题

  5. 重复动作 #2

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

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

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

于 2013-01-02T02:53:12.760 回答
2

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

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

于 2013-03-14T17:27:43.280 回答
2

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

Add-WindowsFeature 'NET-HTTP-Activation'
于 2015-04-21T15:38:40.803 回答
2

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

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

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

于 2016-09-06T20:22:09.097 回答
0

它是 .NET 框架的 HTTP 激活功能 Windows 进程激活功能也是必需的

于 2015-10-31T16:50:52.167 回答
0

这对我来说真的很愚蠢。在此处添加此内容,因为它是 svc 404 问题上更受欢迎的主题之一。

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

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

并且由于某种未知的原因(已经这样做了一千次)并没有立即发现 .svc 文件的名称位于末尾。

哦!

我刚刚从我的 WCF 测试客户端粘贴了地址并且没有充分检查它。这在后台所做的是在 .svc 地址上创建一个 IIS 应用程序,而我从 IIS 中什么也得不到。我无法弄清楚我什至无法访问 .svc 文件。

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

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

于 2016-10-18T20:05:53.437 回答