Django в IIS: ошибка отладки IIS из-за тайм-аута запроса FastCGI при загрузке большого файла - PullRequest
1 голос
/ 11 марта 2020

Я пытаюсь разместить веб-приложение Django на компьютере windows 10 с IIS 10 с FastCGI. Пока все работает хорошо, у меня возникают проблемы с некоторыми POST-запросами при загрузке больших файлов (~ 120 МБ), а именно с ошибкой HTTP 500. Я нахожусь в точке, где я не знаю, как отлаживать дальше.

Я решил ошибку «413.1 - слишком сложный объект запроса», увеличив пределы запросов. Однако теперь я получаю HTTP-ошибку, в которой говорится:

C:\Apps\Python3\python.exe - The FastCGI process exceeded configured request timeout

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

В представлении Django не так много операций для ответа на запрос. Если я запускаю сервер разработки django на том же компьютере, ответ будет отправлен через несколько секунд после загрузки файлов. Время, необходимое IIS для отправки ответа HTTP 500, длится более 1 минуты.

Я добавил некоторый код в Django -вид в post () - метод для записи чего-либо в файл всякий раз, когда вызывается метод:

def post(self, request, *args, **kwargs):
    with open(os.path.join(settings.REPORT_DIR, "view_output.txt"), "w") as f:
        f.write("tbd.")
(...)

Однако это действие никогда не выполняется, хотя оно работает в других Django -просмотрах. Поэтому я предполагаю проблему с обработкой IIS запроса.

Я включил ведение журнала FREB, но немного потерян с интерпретацией. «Ошибки и предупреждения» просто указывают на событие LOG_FILE_MAX_SIZE_TRUNCATE, возможно, из-за большого запроса.

Поскольку я новичок в IIS, как я могу продолжить отладку?

Большое спасибо !

1 Ответ

0 голосов
/ 12 марта 2020

Для решения проблемы вы можете выполнить следующие шаги:

Размер загрузки файла IIS по умолчанию составляет 30 МБ (30000000 байт), чтобы увеличить это значение с помощью:

  • Откройте диспетчер IIS, выберите свой сайт.

  • Функция фильтрации запросов двойного щелчка на средней панели.

enter image description here

  • В правой части экрана на панели «Действия» щелкните ссылку «Изменить параметры функции ...».

enter image description here

  • В разделе «Пределы запросов» введите соответствующую максимально допустимую длину содержимого (в байтах), например, 2147483648, что означает 2 ГБ, и нажмите кнопка OK.

enter image description here

  • нажмите кнопку ОК и примените настройку, затем go назад.

    увеличить время ожидания подключения к сайту:

  • Открыть Inte rnet Диспетчер информационных служб (IIS).

  • Развернуть узел локального компьютера, развернуть Web Сайты, щелкните правой кнопкой мыши соответствующий веб-сайт, выберите «Управление веб-сайтом», нажмите «Дополнительные параметры».
  • В окне «Дополнительные настройки» разверните «Пределы подключения», измените значение в поле «Время ожидания подключения» и нажмите кнопку «ОК».

enter image description here

Настройка пула приложений:

  • Открыть IIS.
  • С левой стороны выберите «Пулы приложений»
  • С правой стороны, справа - щелкните этот пул приложений и выберите «Дополнительные настройки».
  • В дополнительных настройках увеличьте «Время простоя (минуты)».

enter image description here

CGI Time out:

  • в IIS, дважды щелкните значок CGI и увеличьте «Time-out».

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...