2012-07-12 157 views
171

当我尝试担任IIS的WCF服务在Windows 8机器,我得到了众所周知的错误无法在IIS服务WCF服务在Windows 8

您请求的页面不能因为送达扩展配置。如果页面是脚本,请添加处理程序。如果文件应该被下载,添加一个MIME映射。

旧的解决办法就是跑aspnet_regiis -i但该命令似乎已经在Windows 8中被弃用产生响应This option is not supported on this version of the operating system. (...)

会有什么工作呢?

(我已成功启用定期aspx页面了,所以大部分IIS配置似乎健康)

+0

有关更多信息,'ASPNET_REGIIS -i'命令预Windows 8的用户,看到这个链接:http://www.aspsnippets.com/Articles/ASPNet-IIS7-The-page-you -are要求时,不能待送达,因为即用的扩展配置,如果最页面是-A-脚本附加一个处理程序,如果-的文件,应待下载-add-A-MIME-MAP。aspx – David 2016-08-29 23:57:21

回答

341

似乎是没有道理的;应在控制面板中使用Programs and Features -> Turn Windows features on or off启用WCF服务。转至.NET Framework Advanced Services -> WCF Services并启用HTTP Activation,如this blog post on mdsn中所述。

从命令提示符(作为管理员),你可以运行:

C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation 
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 

如果你得到那么错误使用下面

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation 
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45 
+5

我花时间在IIS管理器中查看。我认为IIS管理器应该有一个图标来指导或告诉用户有关.NET Framework Advnaced Services的信息。 – 2013-07-20 19:28:08

+0

使用命令提示符我得到错误“操作已完成,但未启用WCF-HTTP激活功能,可能未启用必需的父功能。您可以使用/ enable-feature/all选项自动启用每个父母功能,如果父功能已启用,请参阅日志文件以进行进一步的诊断。“。我使用了GUI方法来了解我正在开启的工作。 – 2014-07-31 08:08:17

+5

我得到了与Ben Anderson相同的“需要的父功能可能未启用”错误,并尝试了错误消息中的建议(添加了“/ all”参数),然后正常工作:DISM/Online/Enable- Feature/all/FeatureName:WCF-HTTP-Activation45'。 – 2015-01-16 22:25:01

84

对于Windows Server 2012,该解决方案非常相似(见上文)。从服务器管理器中,单击Add roles and features,选择适当的服务器,然后选择Features。在.NET Framework 4.5 Features下,您会看到WCF Services,在此之下,您会看到HTTP Activation

+0

谢谢!但是.Net 4呢?你认为启用这个功能对于.Net v4.0来说是一样的吗? – 2013-02-28 14:26:00

+0

@AladdinGallas,适用于.NET 4.0和.NET 4.5。 – 2013-07-19 01:26:02

+1

在任何现有的Web应用程序中,添加Windows功能后还需要执行以下操作: - 启动inetmgr - 打开“处理程序映射” - 检查扩展名* .svc的svc-ISAPI映射是否存在。如果没有,请使用“还原为父级”操作从父网站复制它们。 请注意,这假设自定义处理程序映射是在web.config中为应用程序配置的,如通常在IIS7 +中的情况。如果不是,执行“还原为父项”时将失去这些内容。 – 2014-07-30 06:58:56

8

请不要在IIS中的以下两个步骤8.0

添加新的MIME类型&的HttpHandler

  1. 扩展:.SVC, MIME类型:应用程序/八位字节流

  2. 请求路径:* .svc, 类型:System.ServiceModel.Activation.HttpHandler, 名称:svc-Integrated

+0

最好的解决方案为我的非常老的Windows 7安装无法启用 - .net 3.5(Http和非Http激活)和WAS。太微妙了重新安装OS – user919426 2015-07-02 09:26:30

+0

这是值得了解这种方法,特别是在创建和添加自己的处理程序时。但是,如果您使用“打开和关闭Windows功能”,您将获得大部分已知的文件扩展名,这将为您节省单独添加每个文件的时间(并找出所有正确的详细信息)。 – 2016-12-06 08:35:06

3

这确实是相同的解决方案作为faester的解决方案和比尔月亮的,但这里是你如何使用PowerShell做到这一点:

Import-Module Servermanager 
Add-WindowsFeature AS-HTTP-Activation 

当然,没有什么东西从调用PowerShell的DISM要么阻止你。

+0

非常好。谢谢你的信息。 – 2016-01-26 15:56:08

-1

您也可以通过打开窗口功能来实现此目的。 enter image description here enter image description here

+1

接受的答案已经解释了这一点。 – Stijn 2017-11-08 13:38:37

相关问题