202

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

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

旧的解决方法是运行aspnet_regiis -i,但这个命令似乎在 Windows 8 中已被弃用,产生响应This option is not supported on this version of the operating system. (...)

解决方法是什么?

(我已经成功启用了常规aspx页面,所以大部分 IIS 配置看起来都很健康。)

4

6 回答 6

419

似乎不费吹灰之力;应Programs and Features -> Turn Windows features on or off在控制面板中启用 WCF 服务。按照mdsn 上的此博客文章中的说明,转到.NET Framework Advanced Services -> WCF Services并启用。HTTP Activation

从命令提示符(以管理员身份),您可以运行:

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
于 2012-07-12T20:35:38.713 回答
97

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

于 2013-01-03T19:16:50.477 回答
13

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

添加新的 MIME 类型和 HttpHandler

  1. 扩展名:.svc,MIME 类型:application/octet-stream

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

于 2013-03-05T06:28:25.110 回答
12

您也可以通过打开 Windows 功能来实现此目的。 在此处输入图像描述 在此处输入图像描述

于 2017-11-01T05:44:55.437 回答
4

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

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

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

于 2015-01-15T03:35:25.973 回答
-1

您可以将此代码添加到 asp mvc 中的 web.config

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

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

于 2018-10-24T11:21:34.040 回答