Опубликовать Flask API в подкаталоге с помощью IIS FastCGI - PullRequest
0 голосов
/ 02 июля 2018

Я хотел бы разместить свой Flask API в подкаталоге на IIS.

MYLAPTOP (IIS Server)
|
|____Sites
     |
     |____Default Web Site (Website)
          |
          |____service (Virtual Directory)
               |
               |____payrollapi (Application)

URL для payrollapi http://localhost/service/payrollapi/

Я настроил параметры wfastcgi и FastCGI

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="FlaskHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\annaconda\envs\payroll\python.exe|c:\annaconda\envs\payroll\lib\site-packages\wfastcgi.py" resourceType="Unspecified" />
        </handlers>
    </system.webServer>
    <appSettings>
        <add key="WSGI_HANDLER" value="payroll.app" />
        <add key="PYTHONPATH" value="C:\inetpub\wwwroot\service\payrollapi" />
    </appSettings>
</configuration>

Скрипт Flask API:

from flask import Flask
app = Flask(__name__)

@app.route("/", methods=['GET', 'POST'])
def notes_list():
    return "Welcome to Payroll !"


if __name__ == "__main__":
    app.run(debug=True)

Возвращает код ошибки "HTTP Error 403.18 - Forbidden" при попытке доступа к методу API.

Я пробовал также с URL Rewrite, но бесполезно

<system.webServer>
  <directoryBrowse enabled="true" />
  <rewrite>
     <rules>
        <rule name="Reverse Proxy to payroll" stopProcessing="true">
            <match url="^service/payrollapi/(.*)" />
            <action type="Rewrite" url="http://localhost:5500/service/payrollapi/{R:1}" />
        </rule>
     </rules>
  </rewrite>

Пожалуйста, помогите мне, как развернуть приложение Flask в поддиректории / под-приложении на веб-сайте.

...