【问题标题】:IIS only add MIME if not existIIS 仅在不存在时添加 MIME
【发布时间】:2014-01-05 03:37:40
【问题描述】:

我的 WebAPI 应用程序再次出现问题。

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

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

我可以在 web.config 中应用一个开关,该开关声明只有在没有其他可用于此扩展的 MIME 时才使用 MIME?

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

【问题讨论】:

    标签: iis mime-types


    【解决方案1】:

    解决这个问题的最简单方法是使用 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

    【讨论】:

    • 对我来说,它会抛出一个异常,抱怨无法删除不存在的内容。
    猜你喜欢
    • 2012-02-19
    • 2012-04-22
    • 2018-02-12
    • 2013-04-15
    • 2015-01-11
    • 2016-10-19
    • 1970-01-01
    • 2012-01-06
    • 2023-03-19
    相关资源
    最近更新 更多