无法在Windows 8的IIS中提供WCF服务

当我尝试在Windows 8机器的IIS上提供WCF服务时,我得到了众所周知的错误

由于扩展配置,您请求的页面无法提供服务。如果页面是一个脚本,则添加一个处理程序。如果应该下载该文件,则添加MIME映射。

旧的工作是运行aspnet_regiis -i,但这个命令似乎在Windows 8中已弃用,返回This option is not supported on this version of the operating system. (...)

周围的工作是什么?

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

145910 次浏览

这似乎是显而易见的;WCF服务应该在控制面板中使用Programs and Features -> Turn Windows features on or off来启用。转到.NET Framework Advanced Services -> WCF Services并启用HTTP Activation,如这篇博文是关于MDSN的中所述。

从命令提示符(作为admin),您可以运行:

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,解决方案与faester的非常相似(见上文)。从服务器管理器中,单击Add roles and features,选择适当的服务器,然后选择Features。在.NET Framework 4.5 Features下面,你会看到WCF Services,在那下面,你会发现HTTP Activation

请在IIS 8.0上执行以下两个步骤

添加新的MIME类型&HttpHandler

    <李> < p >扩展:svc,名 MIME类型:application/octet-stream

  1. 请求路径:*.svc, 类型:System.ServiceModel.Activation.HttpHandler, 李的名字:svc-Integrated < / p > < / >

这实际上是与faester的解决方案和Bill Moon的解决方案相同的解决方案,但以下是如何使用PowerShell:

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

当然,也没有什么能阻止你从PowerShell调用DISM

你也可以通过打开窗口功能来实现。 enter image description here enter image description here < / p >

您可以将此代码添加到web。在asp MVC中配置

   <system.webServer>
<staticContent>
<remove fileExtension=".srt" />
<mimeMap fileExtension=".srt" mimeType="text/srt" />
<remove fileExtension=".vtt" />
<mimeMap fileExtension=".vtt" mimeType="text/vtt" />
</staticContent>
</system.webServer>

您可以用您的文件扩展名更改文件扩展名