python .exe - процесс FastCGI неожиданно завершился - PullRequest
0 голосов
/ 03 февраля 2020

Я прочитал все посты об этой проблеме, здесь и на форуме IIS, получил его на второй странице в Google тоже ... и до сих пор не могу заставить его работать.

Я хочу запустить Приложение Flask / Python в IIS на Windows server 2016, но я получаю эту ошибку:

HTTP Error 500.0 - Internal Server Error
C:\Program Files\Python38\python.exe - The FastCGI process exited unexpectedly

Detailed Error Information:
Module     FastCgiModule
Notification       ExecuteRequestHandler
Handler    FastCGI-Python
Error Code     0x00000002

Мне удалось заставить ее работать на моей машине (Windows 10), но на сервере нет.

Среда

  • Windows Сервер 2016
  • IIS 10
  • Python 3.8
  • wfastcgi 3.0.0
  • Flask 1.1.1

Я пробовал разные версии Python (3.6, 3.7, 3.8). На моем Windows 10 он работает Python 3.7 и работает нормально. Я не могу использовать Python 3.4.2, как это было предложено в одном из сообщений , потому что Flask работает на 3.5 и выше и, очевидно, wfastcgi отлично работает при Python 3.7 на мой компьютер.

Я предоставил полные разрешения для своего пула приложений и IIS_IUSRS для папки своего веб-приложения и папки Python.

Я также установил Microsoft C ++ Build Tools.

И конфигурация IIS была передана с моего компьютера на сервер через «Shared Configuration», поэтому все одинаково. Я просто адаптировал некоторые пути в конфигурационном файле.

Я также пытался запустить веб-приложение на Flask WSGI-сервере для разработки, и оно работало нормально.

Кто-нибудь знает, что еще я могу сделать? Любой совет был бы хорош.

Спасибо :)

РЕДАКТИРОВАТЬ: я добавил предупреждающее сообщение от просмотра событий.

+ System 
- EventData 
  Path C:\inetpub\history\CFGHISTORY_0000000051 
   12000780 
--------------------------------------------------------------------------------
Binary data:
In Words
0000: 80070012    
In Bytes
0000: 12 00 07 80      

РЕДАКТИРОВАТЬ: Добавлен файл web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <remove name="FastCGI-Python" />
            <add name="FastCGI-Python" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files\Python38\python.exe|C:\Program Files\Python38\lib\site-packages\wfastcgi-3.0.0-py3.8.egg\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
        <security>
            <authentication>
                <windowsAuthentication enabled="true" />
                <anonymousAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
    <appSettings>
       <add key="PYTHONPATH" value="C:\inetpub\wwwroot\flaskr" />
       <add key="WSGI_HANDLER" value="__init__.app" />
       <add key="WSGI_LOG" value="C:\inetpub\wwwroot\flaskr\wfastcgi.log" />
    </appSettings>
</configuration>

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете выполнить следующие шаги для настройки приложения python flask в iis:

1) Сначала вам нужно установить python, wfastcgi и flask на вашем сервере.

Вы можете загрузить ссылку python снизу:

https://www.python.org/downloads/

Примечание: если возможно, используйте python версию выше 3.6 .

2) после установки python установите wfastcgi. запустите командную строку от имени администратора и выполните команду ниже:

pip install wfastcgi

wfastcgi-enable

3) ниже приведен мой пример flask:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello from FastCGI via IIS!"
if __name__ == "__main__":
    app.run()

4) после создания приложения для его запуска используйте ниже команда:

python app.py

5) включить функцию cgi в iis:

enter image description here

6) открыть iis.

щелкните правой кнопкой мыши по имени сервера и выберите Добавить сайт.

enter image description here

введите физический путь к имени сайта и привязку сайта.

после добавления сайта выберите имя сайта и выберите функцию сопоставления обработчиков на средней панели.

enter image description here

Нажмите «Добавить сопоставление модуля»

enter image description here

значение исполняемого пути:

C: \ Python37-32 \ python .exe | C: \ Python37- 32 \ Lib \ site-packages \ wfastcgi.py

enter image description here

Нажмите «Запросить ограничения». Убедитесь, что флажок «Вызывать обработчик, только если запрос сопоставлен с:» не установлен:

enter image description here

Нажмите здесь «Да»:

enter image description here

7) теперь go назад и выберите функцию настройки приложения.

enter image description here

нажмите кнопку добавления на панели действий.

enter image description here

Установите переменную PYTHONPATH (которая является путем к папке вашего сайта):

enter image description here

И WSGI_HANDLER (мое приложение Flask называется app.py, поэтому значение app.app - если ваше имя site.py, это будет site.app или аналогичный ):

enter image description here

8) Нажмите OK и перейдите на свой сайт.

enter image description here

Примечание. Не забудьте назначить разрешения iis_iusrs и iusr папке сайта и папке python.

...