Подтвердить что ты не робот

IIS Express - ошибка HTTP 500.19 0x800700b7 в 'mimeMap' для 'fileExtension', установленная в '.svg'

Я добавлял возможность обслуживать SVG и файлы WOFF для моего веб-приложения, расположенного на Azure. Я нашел следующие инструкции:

https://blogs.iis.net/richma/archive/2014/01/07/adding-mime-types-to-your-windows-azure-web-site.aspx

Что я добавил, добавив ниже текст в файл Web.config:

<staticContent>
    <mimeMap fileExtension=".json" mimeType="application/json" />
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
</staticContent>

Это работает, когда публикуется в Azure. Однако теперь я получаю следующую ошибку от IIS-Express всякий раз, когда я пытаюсь запускать веб-сайт в режиме отладки локально для каждого ресурса, который веб-сайт пытается обслуживать.

Ошибка HTTP 500.19 - Внутренняя ошибка сервера

Запрошенная страница не может быть доступна, поскольку связанные с ней данные конфигурации для страницы недействительны.

Подробная информация об ошибке:

  • Модуль: CustomErrorModule
  • Уведомление SendResponse
  • Обработчик StaticFile
  • Код ошибки 0x800700b7
  • Ошибка конфигурации Невозможно добавить запись дубликата коллекции типа "mimeMap" с уникальным атрибутом ключа "fileExtension", установленным в ".svg"
  • Файл конфигурации snip\web.config
  • Запрошенный URL http://snip: 14466/resources/img/snip.png
  • Физический путь C: * snip *\Resources\img * snip *.png
  • Анонимный метод входа в систему
  • Пользователь анонимного входа

Источник конфигурации:

   58: <mimeMap fileExtension=".json" mimeType="application/json" />
   59: <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
   60: <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>

Он явно ненавидит мой mimeMap для .svg, но это отлично работает на сайтах Azure. Есть ли что-то, что мне не хватает для локального запуска этих изменений в Web.config?

4b9b3361

Ответ 1

И, конечно, я нахожу этот ответ после публикации моего вопроса:

Добавление <mimeMap> entry Причиняет 500 для другого статического контента на IIS Express

Итак, проблема в том, что моя локальная конфигурация IIS имеет уже загруженные модули, между тем производственная среда этого не делает. Поэтому, чтобы исправить проблему для обеих сред, вы должны убедиться, что mimeMaps не загружены, прежде чем загружать их.

Код для следующего исправления:

<staticContent>
    <remove fileExtension=".json"/>
    <mimeMap fileExtension=".json" mimeType="application/json" />
    <remove fileExtension=".svg"/>
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
    <remove fileExtension=".woff"/>
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
</staticContent>

Надеемся, что это поможет другим тратить время на поиски исправления.

Ответ 2

Я обнаружил, что если у вас есть какие-либо элементы mimeMap, которые дублируются между вашим Web.Config в каталоге, где размещается ваше приложение, и по умолчанию %UserProfile%\Documents\IISExpress\config\applicationhost.config, он будет терпеть неудачу для всех.

Сработало одно и то же решение: убедитесь, что <remove> каждая <mimeMap> запись.