当我尝试在Windows 8机器上通过IIS提供WCF服务时,我遇到了一个众所周知的错误。
由于扩展配置的原因,无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载该文件,请添加MIME映射。
旧的解决方法是运行aspnet_regiis -i
,但这个命令似乎在Windows 8中已被弃用,会产生响应此选项不支持此操作系统版本。(...)
。
那么解决方法是什么呢?
(我已经成功启用了常规的aspx
页面,因此大部分的IIS配置似乎都正常。)
看起来很简单:应该使用“程序和功能 -> 打开或关闭Windows功能”在控制面板中启用WCF服务。 转到“.NET Framework高级服务 -> WCF服务”,并按照MSDN博客文章中所述启用HTTP激活。
从命令提示符(以管理员身份)可以运行:
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
/all
参数),结果成功了:DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45
。 - Troy Gizzi.NET 3.5 Framework 高级服务 -> Windows Communication Foundation HTTP 激活
。 - rion18对于Windows Server 2012,解决方案与faester的方法非常相似(请参见上文)。从服务器管理器中,点击添加角色和功能
,选择适当的服务器,然后选择功能
。在.NET Framework 4.5功能
下,您将看到WCF服务
,在其中,您将找到HTTP激活
。
这实际上是与faester和Bill Moon的解决方案相同,但以下是使用PowerShell的方法:
Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation
DISM
命令。 <system.webServer>
<staticContent>
<remove fileExtension=".srt" />
<mimeMap fileExtension=".srt" mimeType="text/srt" />
<remove fileExtension=".vtt" />
<mimeMap fileExtension=".vtt" mimeType="text/vtt" />
</staticContent>
</system.webServer>
你可以将文件扩展名更改为你的文件扩展名
aspnet_regiis -i
命令的更多信息,适用于 Windows 8 之前的用户,请参阅此链接:http://www.aspsnippets.com/Articles/ASPNet-IIS7-The-page-you-are-requesting-cannot-be-served-because-of-the-extension-configuration-If-the-page-is-a-script-add-a-handler-If-the-file-should-be-downloaded-add-a-MIME-map.aspx。 - David