Назад | Перейти на главную страницу

Ошибка 404 или 500 при загрузке большого статического файла JSON в IIS 7

Вы можете подумать, что я хотел сделать довольно просто. Создайте статический файл json, чтобы браузеры могли кэшировать вывод, и вам не нужно было опрашивать базу данных на предмет больших фрагментов данных.

Итак, я создал файл JSON test.json с содержимым [{"frut":1}] (Мои фактические файлы находятся в районе 3 МБ)

я пошел в http://domain.com/frut.json и я получил error 404

404 - файл или каталог не найден.
Ресурс, который вы ищете, мог быть удален, изменилось его название или временно недоступен.

Прежде всего я был удивлен .. файл был там, почему бы не предложить его для скачивания или 403 запрещено ...

Ладно. Google, в конце концов https://www.sencha.com/forum/showthread.php?33266-Some-Problem-with-JSON/page2#post_229858

Так что я попробовал

IIS7 configuration to support JSON:  
Using IIS manager: clock on IIS server (the main node on the left - where you see the machine name)  
1. Add ‘json’ MIME Type   
    * Double click on ‘MIME Types’ icon  
    * Click ‘Add…’ link (under Actions section on the right side)  
                   In ‘Add MIMI Type’ window type:  
                   File name extension: .json   
                   MIME type: application/x-javascript  
    * Click OK, You should see the .json MIME Type added to the list of the MIME Types list.
2. Add Script Map Handler for ‘json’ MIME Type
    * Double click on ‘Handler Mappings’ icon
    * Click on ‘Add Script Map…’ link (under Actions section on the right side)
    * In ‘Add Script Map’ window type:
           Request path: *.json
           Executable: C:\Windows\System32\inetsrv\asp.dll
           Name: JSON
    * Click OK (Message box pops up with a message: Do you want to allow this ISAPI extension?...etc ) Click Yes, You should see the .json extension added to the list of the Handler Mappings list

Ладно. Error 500 вместо того error 404. Не понимая, почему ... как, что, черт возьми, происходит. Я проверил логи. здесь пусто. Просто неопределенное упоминание 500 в запросе. Это оно. нет подробностей, нет журналов ошибок. ничего.

В этот момент я снова начинаю серьезно ненавидеть Microsoft.

Много читайте об ограничениях на запросы, но это не так, потому что этот файл даже не достигает 1 КБ, не говоря уже о лимите 2 ГБ.

Google больше, в конечном итоге нечего показать за это.

Вопрос Как мне получить простой текстовый файл JSON для отображения в IIS 7.5, чтобы я мог запросить с помощью запроса ajax без того, чтобы IIS убивал себя через простой текстовый файл.

Решение кажется простым, но его практически невозможно найти для получения желаемого поведения из IIS.

Решение в основном в том, чтобы не служить application/x-javascript но, как text/json

На основании ответа на IIS не может обслуживать определенное расширение файла

Используя диспетчер IIS: щелкните сервер IIS (основной узел слева - где вы видите имя компьютера)

  1. Добавить json Тип MIME
    • Дважды щелкните на MIME Types значок
    • Нажмите Add… ссылка (в разделе "Действия" справа)

      В Add MIME Type тип окна:
      Расширение имени файла: .json
      Тип MIME: text/json

    • Нажмите OK, Вы должны увидеть .json Тип MIME добавлен в список типов MIME.

Теперь, когда вы запрашиваете файл, он обслуживает его как обычный текстовый файл именно так, как вы этого хотите.