Windows 10IISサーバーでのPythonFlaskホスティング

Nov 19 2020

Python RestAPIをWindows10IISサーバーでホストしたい。

最初にサンプルアプリケーションをホストしようとしましたが、それができません。

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>  

以下のチュートリアルを試しましたが、うまくいきません。

  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

HTTPエラー500.0-内部サーバーエラー:エラー画面を参照してください

私は助けが必要です....ありがとう

回答

DingPeng Nov 19 2020 at 15:12

IISホストのPythonアプリケーションが必要な場合は、Pythonをインストールしてから、IISにモジュールマッピングを追加する必要があります。手順は次のとおりです。

  1. まず、コンピューターにpythonをインストールします。

  2. CGIを有効にする:

インストールが正常に完了すると、「ISAPIとCGIの制限」とハンドラーのマッピングが表示されます。

  1. 「ISAPIおよびCGIの制限」と入力し、新しいISAPIまたはCGIの制限を追加します。

  1. 「ハンドラーマッピング」と入力し、モジュールマッピングを追加します(%S%Sを追加する必要があります。そうしないと、エラーが報告されます)。

最後に、Pythonアプリケーションに正常にアクセスできます。

更新:

ハンドラーマッピングでPythonを見ることができますか?

これは私のweb.configです:

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

web.configには何もありません。私の設定はすべてIIS全体のものです。

「ディレクトリブラウジング」をクリックします。

有効にする: