无法在Windows 8上的IIS中提供WCF服务
当我尝试在Windows 8机器上的IIS上提供WCF服务时,出现了众所周知的错误
您正在请求的页面由于扩展configuration而无法投放。 如果页面是脚本,添加一个处理程序。 如果文件应该被下载,添加一个MIME映射。
旧的解决方法是运行aspnet_regiis -i
但是这个命令似乎已经在Windows 8中被弃用了This option is not supported on this version of the operating system. (...)
This option is not supported on this version of the operating system. (...)
。
这将是什么工作?
(我已经成功地启用了常规的aspx
页面,所以大部分的IISconfiguration看起来都很健康。)
似乎是一个没有脑子的问题。 应使用Programs and Features -> Turn Windows features on or off
启用WCF服务Programs and Features -> Turn Windows features on or off
在控制面板中Programs and Features -> Turn Windows features on or off
。 转到.NET Framework Advanced Services -> WCF Services
并启用HTTP Activation
,如mdsn上的此博客文章中所述 。
从命令提示符(以pipe理员身份),您可以运行:
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
对于Windows Server 2012,解决scheme与faester(见上)非常相似。 从服务器pipe理器中,单击Add roles and features
,select适当的服务器,然后selectFeatures
。 在.NET Framework 4.5 Features
,您将看到WCF Services
,在此之下,您将findHTTP Activation
。
请在IIS 8.0上执行以下两个步骤
添加新的MIMEtypes&HttpHandler
-
扩展名:.svc,MIMEtypes:application / octet-stream
-
请求path:* .svc,types:System.ServiceModel.Activation.HttpHandler,名称:svc-Integrated
这与fanes的解决scheme和Bill Moon的解决scheme是一样的,但是您可以通过PowerShell来实现这一点:
Import-Module Servermanager Add-WindowsFeature AS-HTTP-Activation
当然,也没有什么能阻止你从PowerShell调用DISM
。
您也可以通过打开窗口function来实现此目的。