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

Как я могу решить код ошибки 0x80070585 в моем приложении Python Flask wfastcgi?

Я пытаюсь развернуть приложение Flask в IIS (обычно это делается в стеке Nginx / Gunicorn).

Мой стек

Я работаю с Python 3.7, установленным глобально, IIS 10 на Windows 10 pro.

Что я пробовал

<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 за ссылку на общение.