Error de URL de IIS de Windows 10 - Python Flask Rest API

Nov 20 2020

Esta es mi aplicación de API de descanso de Python de muestra. He alojado esta aplicación en Windows 10 IIS.

hola.py

from flask import Flask
app=Flask(__name__)

@app.route('/',methods=['GET'])
def index():
    return "Hello World 0.0!"
    
@app.route('/1',methods=['GET'])
def index1():
    return "Hello 1.0!"

@app.route('/2',methods=['GET'])
def index2():
    return "Hello 2.0!"
    
if __name__=='__main__':
    app.run(debug=True)

web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files\Python39\python.exe|&quot;C:\Program Files\Python39\lib\site-packages\wfastcgi.py&quot;" resourceType="Either" requireAccess="Script" />
    </handlers>
    <security> 
        <requestFiltering allowDoubleEscaping="true"></requestFiltering> 
    </security> 
  </system.webServer>

  <appSettings>
    <!-- Required settings -->
    <add key="WSGI_HANDLER" value="hello.app" />
    <add key="PYTHONPATH" value="~/" />

    <!-- Optional settings -->
    <add key="WSGI_LOG" value="C:\website\oboeqa_web.log" />
    <add key="WSGI_RESTART_FILE_REGEX" value=".*((\.py)|(\.config))$" />
  </appSettings>
</configuration>

http: // localhost: 8080

Hello World 0.0!

http: // localhost: 8080/1

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

http: // localhost: 8080/2

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

http: // localhost: 8080/3

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

La primera ruta solo funciona y la ruta restante no funciona.

Respuestas

2 DingPeng Nov 20 2020 at 09:35

Necesita modificar el resourceType:

    <handlers>
      <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python27\python.exe|C:\Python27\lib\site-packages\wfastcgi.pyc" resourceType="Unspecified" requireAccess="Script" />
    </handlers>

Debe modificar el valor de resourceType a Unspecified.