IIS仅在不存在时添加MIME

时间:2013-12-17 11:36:53

标签: iis mime-types

我 - 再次 - 我的WebAPI应用程序中存在问题。

我正在尝试在不同版本的IIS(7,7.5,8)上部署。较新的版本似乎有.json的全局MIME处理程序,而旧版本没有。

当IIS找不到MIME处理程序时,该文件不存在。因此,对于旧版本,我在web.config中创建了一个本地MIME处理程序。 棘手的部分是:如果它找到其中两个(一个全局和一个本地),它就会停止工作 - 即使它们都是相同的,IIS也不知道选择哪一个(wtf!?)并且只抛出错误。 / p>

我是否可以在web.config中应用一个开关,该开关指出只有在此扩展名没有其他MIME的情况下才能使用MIME?

如果没有,我可以告诉VisualStudio部署不同版本的web.config,具体取决于部署配置文件 - 和/或我可以在web.config中应用基于IIS版本的交换机吗?

1 个答案:

答案 0 :(得分:9)

处理此问题的最简单方法是使用remove选项进行mime映射,如下所示:

<system.webServer>
  ...
  <staticContent>
    <remove fileExtension=".woff" />
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
  </staticContent>
</system.webServer>

这里详细讨论:

http://blogs.msdn.com/b/chaun/archive/2009/12/04/iis7-error-cannot-add-duplicate-collection-entry-of-type-mimemap-with-unique-key-attribute-fileextension.aspx

此处还有对它的引用: Add MIME mapping in web.config for IIS Express