Я хотел бы разместить свой 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 в поддиректории / под-приложении на веб-сайте.