Python Flask Hosting no servidor IIS do Windows 10

Nov 19 2020

Desejo hospedar minha API Python Rest no servidor Windows 10 IIS.

Primeiro tentei hospedar um aplicativo de amostra, mas não consegui.

my_app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello IIS from Flask framework.'

@app.route('/Hello')
def hello_world():
    return 'Hello World!'
    
if __name__ == '__main__':
    app.run()

web.config

<configuration>  
  <system.webServer>
    <handlers>
        <add name="Python FastCGI"
            path="*"
            verb="*"
            modules="FastCgiModule"
            scriptProcessor="C:\Program Files\Python39\python.exe|C:\Program Files\Python39\lib\site-packages\wfastcgi.py"
            resourceType="Unspecified"
            requireAccess="Script" />
    </handlers>
  </system.webServer>
  <appSettings>
    <add key="WSGI_HANDLER" value="my_app.app" /> <!-- {name_of_file}.{name_of_flask_app}-->
    <add key="PYTHONPATH" value="C:\inetpub\wwwroot\test" />
    <add key="WSGI_LOG" value="C:\inetpub\wwwroot\test\app.log" />
  </appSettings>
</configuration>  

Eu tentei os tutoriais abaixo, mas não está funcionando para mim.

  1. https://medium.com/@rajesh.r6r/deploying-a-python-flask-rest-api-on-iis-d8d9ebf886e9

  2. https://www.youtube.com/watch?v=ma1UvzqF82Q&ab_channel=ShobhitWalia

Erro HTTP 500.0 - Erro interno do servidor: consulte a tela de erro

Preciso de ajuda .... Obrigado

Respostas

DingPeng Nov 19 2020 at 15:12

Se você deseja que o aplicativo python host IIS, instale o python e, em seguida, adicione o mapeamento de módulo no IIS. Aqui estão as etapas:

  1. Primeiro instale o python em seu computador.

  2. Habilitar CGI:

Após a instalação bem-sucedida, você verá "Restrições ISAPI e CGI" e mapeamentos de manipulador:

  1. Digite "ISAPI and CGI Restrictions", adicione uma nova ISAPI ou CGI Restrictions:

  1. Digite "Handler Mappings" e, em seguida, adicione o Mapeamento de Módulo (% S% S precisa ser adicionado ou um erro será relatado):

Finalmente, podemos acessar com sucesso o aplicativo python:

ATUALIZAR:

Você pode ver o python em seus mapeamentos de manipulador?

Este é meu web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
</configuration>

Não há nada no web.config. Todas as minhas configurações são para todo o IIS:

Clique em "Navegação no diretório":

Habilitá-lo: