IIS 7.5 падает после нескольких запросов (с Django + PyISAPIe) - PullRequest
4 голосов
/ 14 апреля 2011

Мне удалось запустить Django, используя IIS в качестве веб-сервера (используя PyISAPIe ), и на моем тестовом сервере все идет хорошо, монтируя Windows 2008 Server R2 64bit.

Затем я установил приложение на другом сервере с такой же конфигурацией, и оно отлично работает для первого запроса. Затем, когда я перезагружаю страницу, я получаю страницу «Сервис не работает».

В журнале событий я вижу ошибку приложения о том, что у python26.dll были некоторые проблемы:

Faulting application name: w3wp.exe
Faulting module name: python26.dll
Exception code: 0x40000015
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\system32\python26.dll

Не могли бы вы дать мне подсказку, как решить эту проблему?

ОБНОВЛЕНИЕ : для параметра «Быстрая защита от сбоев» в расширенных настройках пула приложений установлено значение 5 сбоев; отключив его, все работало хорошо.

Итак, теперь вопрос: как я могу определить причину сбоев?

ОБНОВЛЕНИЕ : Я обнаружил, что IIS падает, когда есть несколько запросов (img, css, js). PyISAPIe вызывается для каждого из них, передавая их статическому серверу после распознавания. Понятия не имею, почему это происходит ...

Ответы [ 4 ]

2 голосов
/ 10 мая 2012

PyISAPIe не является хорошим выбором для запуска Django в Windows 2008. В этой статье вы найдете лучшее решение: Запуск Django в Windows (с тестами производительности)

1 голос
/ 11 мая 2012

Я обнаружил, что IIS аварийно завершает работу при наличии нескольких запросов (img, css, js). PyISAPIe вызывается для каждого из них, передавая их статическим Сервер однажды распознан. Понятия не имею, почему это происходит ...

Вызывает ли множественный запрос ошибку на обеих машинах? Когда в приложении ISAPI есть несколько запросов, каждый запрос выполняется в своем собственном потоке. Модель многопоточности Python является GLOBAL - все потоки, работающие под этим процессом Python, смешаны и совместно используют все глобальные ресурсы, поэтому вы должны сериализовать весь многопоточный код, работающий во всех приложениях и процессах с использованием вашего механизма Python. Это серьезный недостаток многопоточной обработки Python и может быть источником ваших проблем. См. http://docs.python.org/library/multiprocessing.html и другие источники.

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

1 голос
/ 28 апреля 2011

Проверьте журнал событий, он должен быть там.

Вы также можете найти более подробную информацию в журнале httperror (C: \ Windows \ System32 \ LogFiles \ HTTPERR).

0 голосов
/ 14 апреля 2011

Проверка использования памяти на компьютере (всего физического).

...