Alojamiento Python Flask en el servidor IIS de Windows 10

Nov 19 2020

Quiero alojar mi API Python Rest en el servidor IIS de Windows 10.

Primero intenté alojar una aplicación de muestra pero no pude hacerlo.

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>  

He probado los siguientes tutoriales, pero no me funcionan.

  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

Error HTTP 500.0 - Error interno del servidor: consulte la captura de pantalla del error

Necesito ayuda ... gracias

Respuestas

DingPeng Nov 19 2020 at 15:12

Si desea una aplicación de Python de host de IIS, debe instalar Python y luego debe agregar la asignación de módulos en IIS. Estos son los pasos:

  1. Primero instale Python en su computadora.

  2. Habilitar CGI:

Después de una instalación exitosa, verá "Restricciones de ISAPI y CGI" y asignaciones de controladores:

  1. Ingrese "Restricciones ISAPI y CGI", agregue una nueva restricción ISAPI o CGI:

  1. Ingrese "Asignaciones de controlador", luego agregue Asignación de módulo (es necesario agregar% S% S o se informará un error):

Finalmente podemos acceder con éxito a la aplicación Python:

ACTUALIZAR:

¿Puedes ver python en tus asignaciones de manejadores?

Este es mi web.config:

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

No hay nada en web.config. Todas mis configuraciones son para todo el IIS:

Haga clic en "Exploración de directorios":

Permitirle: