
Я обслуживаю файлы .JSON, но даже если файл существует, IIS продолжает выдавать ошибку 404 при доступе к любому из файлов. Я попробовал переименовать один из файлов в .JS, и это сработало.
Есть ли какие-нибудь указания на то, какая настройка может вызвать эту проблему?
решение1
По умолчанию IIS в W2K3 и более поздних версиях не обслуживает файлы, тип MIME которых ему неизвестен (вместо этого возвращая ошибки 404).
Вам необходимо добавить тип MIME в IIS, чтобы разрешить ему обслуживать этот тип файла. Вы можете установить его на уровне сайта или на уровне сервера.
Чтобы установить это для всего сервера:
- Откройте свойства сервера в диспетчере IIS и щелкните Типы MIME.
- Нажмите «Новый». Введите «JSON» для расширения и «application/json» для типа MIME.
решение2
У меня была та же проблема. IIS делает что-то под названием MIME-фильтрация. Если он не знает MIME-тип определенного расширения файла, он возвращает ошибку 404.
В IIS <7: Откройте свойства сайта (или сервера). Нажмите наHTTP-заголовоквкладка. Нажмите наMIME-типыКнопка. Добавьте тип файла * с типом MIME "application/octet-stream".
Для IIS 7: Откройте диспетчер IIS. Нажмите кнопкусерверили веб-сайт. Дважды щелкнитеMIME-типыЗначок функции. В панели «Действия» щелкнитеДобавлять. В поле «Расширение имени файла» введите *, а в поле Тип MIME — «application/octet-stream».
решение3
Я добавил MIME .json
- тип text/json
на сайт в IIS для просмотра в браузере как текст.
решение4
У меня тоже была эта проблема - и проблема оказалась в правах доступа к папке, где хранился файл json. Я ответил нааналогичный вопрос здесь.
Все эти люди правы, когда говорят, что вам нужно добавить тип MIME.
Тип MIME включает расширение файла на сервере, а обработчик сопоставления сообщает IIS, что с ним делать.
Так что вам также придетсядобавить обработчик сопоставления, и для этого у вас должна быть функция Windows, которая называетсяКлассический Asp установлендля обработки картирования.
Вот как добавить обработчик сопоставления:
- Откройте диспетчер IIS7
- Перейдите в свойства сервера IIS (или только сайта, если вам не нужны глобальные настройки)
- Нажмите на
Handler Mappings
- Нажмите на
Add a Script Map
- Введите свойства:
- Путь запроса:
*.json
- Исполняемый файл:
C:\WINDOWS\system32\inetsrv\asp.dll
- Имя:
JSON
(можете называть как хотите)
- Путь запроса:
- Нажмите OK, и все готово. Это должно начать работать, и вам не понадобится сброс IIS.
Кроме того, некоторые люди скажут вам использовать `application/x-javascript' в качестве приложения mime-типа, но JSON - это не JavaScript,как таковой(этоявляется(однако это подмножество), поэтому вместо этого должно быть «application/json», поскольку это зарегистрированный IANA тип носителя для JSON.