Erro de URL do Windows 10 IIS - API Python Flask Rest

Nov 20 2020

Este é meu exemplo de aplicativo de API do Python Rest Eu hospedei este aplicativo no Windows 10 IIS.

ola.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.

A primeira rota só funciona e a rota restante não funciona.

Respostas

2 DingPeng Nov 20 2020 at 09:35

Você precisa modificar o 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>

Você precisa modificar o valor de resourceType para Unspecified.