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

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

Мой стек

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

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

  • Активация службы CGI в IIS
  • Установка wfastcgi по https://pypi.org/project/wfastcgi/
  • Включение wfastcgi с 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 файл "standalone".

  • Создание приложения в IIS, связанного с этой папкой с правильным физическим путем

    во время тестирования параметров приложения, шаг аутентификации в порядке, шаг Авторизация выдает предупреждение, но не ошибку.

Результат

Когда я пытаюсь добраться до своего приложения, я получаю ошибку 500 HTTP с следующим кодом ошибки IIS 0x80070585.

Когда я "сломаю" мой web.config файл (например, удаление тега close), IIS сообщает, что файл сформирован неправильно, поэтому файл доступен.

Так как ошибка, кажется, происходит от scriptProcessor, я дважды проверил, что оба C:\Program Files\Python37\python.exe а также C:\Program Files\Python37\Lib\site-packages\wfastcgi.py существовала. Могут ли IIS иметь проблемы с доступом?

Я пытался проверить журналы IIS, но это не совсем многословно. У меня есть только журналы HTTP-запросов.

Куда мне копать, чтобы найти больше логов?

Спасибо за помощь, обратите внимание, что я совершенно новичок в серверах IIS и Microsoft, поэтому я, возможно, пропустил что-то большое.

1 ответ

Решение

Поскольку Microsoft, похоже, отказывается от этого стека, единственное серьезное решение - перейти на активно поддерживаемое решение, такое как Nginx или Apache. Спасибо @Lex Li за ссылку на сообщение.

Другие вопросы по тегам