Разрешить загрузку JSON файлов в Visual Studio Express 2013 для Интернета

У меня проблема, что IIS из Visual Studio Express 2013 для Интернета не позволяет загружать *.json файлы. При попытке загрузить файл *.json я получаю 403 Forbidden и страницу справки о том, как настроить IIS, разрешить загрузку файлов JSON, но не знаю, что делать с этой информацией/где IIS даже находится.

Это страница с ошибкой:

Ошибка HTTP 404.3 - Не найдено. Страница, которую вы запрашиваете, не может быть из-за конфигурации расширения. Если страница является script, добавьте обработчик. Если файл необходимо загрузить, добавьте MIME карта.

Скорее всего, причины: возможно, что отображение обработчика отсутствует. По умолчанию статический обработчик файлов обрабатывает все содержимое. Функция вы пытаетесь использовать, возможно, не будут установлены. Соответствующая MIME-карта не разрешено для веб-сайта или приложения. (Предупреждение: не создать MIME-карту для контента, который пользователи не должны загружать, например .ASPX или .config.) Если ASP.NET не установлен.

Что вы можете попробовать: В system.webServer/обработчики: убедитесь, что ожидаемый обработчик для текущей страницы. Обратите особое внимание к предварительным условиям (например, runtimeVersion, pipeMode, битность) и сравнить их с настройками для вашего пула приложений. Дополнительная плата внимание к типографским ошибкам в ожидаемой строке обработчика. пожалуйста убедитесь, что функция, которую вы пытаетесь использовать, установлена. проверить что карта MIME включена или добавлена ​​карта MIME для веб-сайта используя инструмент командной строки appcmd.exe. Чтобы установить тип MIME, запустите следующая команда в каталоге установки IIS Express: appcmd set config/section: staticContent /+ [fileExtension = 'string', mimeType = 'string'] Переменная Строка fileExtension - это расширение имени файла и переменная Строка mimeType - это описание типа файла. Например, чтобы добавить MIME-карта для файла с расширением ".xyz": appcmd set config /section: staticContent/+[файлExtension='.xyz'mimeType='text/plain '] Предупреждение. Убедитесь, что это MIME-сопоставление необходимо для вашего веб-сервера. перед добавлением его в список. Файлы конфигурации, такие как .CONFIG или динамические страницы сценариев, такие как .ASP или .ASPX, не должны загружается напрямую и всегда обрабатывается через обработчик. Другие файлы, такие как файлы базы данных или те, которые используются для хранения конфигурация, например .XML или .MDF, иногда используется для хранения информация о конфигурации. Определите, могут ли клиенты загружать эти типы файлов перед их включением. Установите ASP.NET. Проверьте сбой запросить журналы трассировки для получения дополнительной информации об этой ошибке. Для более подробную информацию, нажмите здесь.

Подробная информация об ошибке: Уведомление модуля StaticFileModule
Обработчик ExecuteRequestHandler StaticFile Код ошибки 0x80070032 Запрошенный URL http://localhost:64107/Settings/Settings.json Физический путь D:\GIT\RepoP_Paneon\Settings\Settings.json Вход в систему Анонимный анонимный анонимный анонимный пользователь C:\Users\stefank\Documents\IISExpress\TraceLogFiles\REPOP_PANEON

Дополнительная информация: Эта ошибка возникает, когда расширение файла запрошенный URL-адрес предназначен для типа MIME, который не настроен на сервере. Вы можете добавить тип MIME для расширения файла для файлов, которые не являются динамические страницы сценариев, базы данных или файлы конфигурации. Обработать эти типы файлов с помощью обработчика. Вы не должны допускать прямой загрузки динамических страниц сценариев, базы данных или файлов конфигурации. Просмотреть дополнительную информацию "

Ответ 1

После еще нескольких поисковых запросов и экспериментов выяснилось, что вам нужно определить настройки IIS в Web.config.

После добавления следующей конфигурации:

  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>

он работает как шарм.

Пример файла полной установки:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>
</configuration>

Ответ 2

Лучше добавить тег remove в случае, если будущий IIS построит поддержку json. Это мой раздел web.config mimeMap.

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

Ответ 3

Нам может потребоваться отличать среду разработки Visual Studio (с IIS Express) от локального IIS и удаленного сервера (например, Azure WebSites). Чтобы конкретно настроить IIS Express, например, мы редактируем %USERPROFILE%\Documents\IISExpress\config\applicationhost.config под system.webServer/staticContent:

<mimeMap fileExtension=".json" mimeType="application/javascript" />

Мне нужно сделать это различие, потому что у моей локальной (интрасети) IIS уже установлен тип mime JSON. Поэтому, когда я развертываю сайты Azure, я использую это преобразование в Web.Release.config:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".json" mimeType="application/javascript" xdt:Transform="Insert" />
    </staticContent>
</system.webServer>

Ответ 4

  • Откройте CMD с правами администратора.
  • Перейдите к:

    cd C:\Program Files\IIS Express или
    cd C:\Program Files (x86)\IIS Express

  • Команда запуска:

    appcmd set config /section:staticContent /+[fileExtension='JSON',mimeType='application/x-javascript']