Я пытаюсь развернуть приложение Flask в IIS (обычно это делается в стеке Nginx / Gunicorn).
Я работаю с Python 3.7, установленным глобально, IIS 10 на Windows 10 pro.
wfastcgi enable
(и сохранил вывод для файла конфигурации)wwwroot/myapp
web.config
файл на этом myapp
папка, которая выглядит так:<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\Program Files\Python37\python.exe|C:\Program Files\Python37\Lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
<appSettings>
<!-- Required settings -->
<add key="WSGI_HANDLER" value="backend.wsgi.socketio" />
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\myapp" />
</appSettings>
</configuration>
socketio
это имя моего приложения Flask, все в порядке, когда я запускаю файл wsgi в автономном режиме.
при тестировании параметров приложения шаг аутентификации в порядке, шаг авторизации вызывает предупреждение, но не ошибку.
Когда я пытаюсь связаться со своим приложением, я получаю ошибку HTTP 500 со следующим кодом ошибки IIS 0x80070585.
Когда я "ломаю" свой web.config
file (например, удалив закрывающий тег), IIS сообщает мне, что файл сформирован неправильно, поэтому файл доступен.
Поскольку ошибка, похоже, исходит от scriptProcessor, я дважды проверил, что оба C:\Program Files\Python37\python.exe
и C:\Program Files\Python37\Lib\site-packages\wfastcgi.py
существовал. Могут ли у IIS проблемы с доступом?
Я попытался проверить журналы IIS, но это не очень подробный ответ. У меня есть только логи HTTP-запросов.
Где мне копать, чтобы найти больше логов?
Спасибо за вашу помощь, обратите внимание, что я новичок в серверах IIS и Microsoft, поэтому, возможно, я пропустил что-то важное.
Поскольку Microsoft, похоже, отказывается от этого стека, единственное серьезное решение - перейти на активно поддерживаемое решение, такое как Nginx или Apache. Спасибо @Lex Li за ссылку на общение.