4

为了支持在 IIS 7 上安装,我在 web.config 中添加了以下内容:

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>
</system.webServer>

这在 IIS7(和 express)中运行良好,因为默认情况下不包含 .mp4。现在我正在尝试使用 IIS8 Express 在 VS2012 下运行解决方案,没有提供静态内容,而是出现一个错误,即<staticContent>.mp4 已经有一个 mimeMap 无效。

如何在仍然保留 IIS7 安装的映射的同时更正此问题?如果我能提供帮助,我宁愿不需要新的项目配置。

编辑:这实际上是现在 VS2010 中的一个问题,因为它看起来像 IIS8 Express 完全取代了 IIS7 Express。

4

2 回答 2

2

可能有更好的方法来做到这一点,但我所做的是进入 IIS Express 正在使用的 applicationhost.config 文件,并找到并注释掉 mimeMap 设置,如下所示:

<!--            <mimeMap fileExtension=".m4v" mimeType="video/mp4" /> -->
<!--            <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> -->

进行此更改后,您可以保留 web.config mimeMap 设置,它将在 IIS7 和 IIS8 Express 上运行。

如果您需要知道 IIS Express 正在使用哪个 applicationhost.config 文件,只需右键单击通知区域图标(任务栏右侧)中的 IISExpress 图标,然后单击“显示所有应用程序”,然后单击站点名称(不是您正在为其开发的站点的 URL),它将在下面显示有关该站点的详细信息,包括配置文件路径。抱歉,如果这看起来微不足道,我很难找到我的配置文件,因为它最终位于远程文件服务器上。

于 2013-02-21T21:03:32.637 回答
1

首先显式删除映射:

<system.webServer>
  <staticContent>
    <remove fileExtension=".mp4" />
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>
</system.webServer>

即使没有要删除的映射,这也有效。

于 2014-06-20T15:18:43.293 回答