我已经按照几个不同的指南介绍了如何在Windows Server 2008R2上将Flask应用程序部署到IIS,但主要是这个http://netdot.co/2015/03/09/flask-on-iis/。我可能错过了一些小细节,希望你能帮助我。导航到localhost / PythonTest时,请获取以下 404 Not Found 错误消息:"在服务器上找不到请求的URL。如果您手动输入了URL,请检查您的拼写,然后重试。"
这是Flask应用程序的文件夹结构
app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello from FastCGI via IIS!"
if __name__ == "__main__":
app.run()
的web.config
<configuration>
<system.webServer>
<handlers>
<add name="PythonTestHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\PythonEnvironments\Python36\python.exe|C:\webapps\PythonTest\wfastcgi.py" resourceType="Unspecified" />
</handlers>
</system.webServer>
</configuration>
wfastcgi.py - 运行
后从已安装的目录中复制/粘贴pip install wfastcgi
在IIS中,我创建了一个名为PythonTest的新网站,并将其映射到webapps \ PythonTest文件夹。我使用Web平台安装程序在IIS中安装了wFastCGI。在创建的网站中,我添加了一个名为PythonTestHandler的处理程序映射,其中包含:
请求路径= *
Module = FastCgiModule
可执行文件(可选)= C:\ PythonEnvironments \ Python36 \ python.exe | C:\ webapps \ PythonTest \ wfastcgi.py
我还确保取消选中请求限制中的复选框。
在Web服务器的FastCgiSetting中,在上述步骤中添加处理程序后,会创建一个条目。完整路径指向python.exe和wfastcgi.py文件的参数,如上所述。我添加了两个环境变量,一个名为PYTHONPATH,指向python.exe文件,另一个名为WSGI_HANDLER,值为app.app。
非常欢迎任何有关如何找到问题的建议。
我已经给了IUSR,IIS_IUSR,LOCAL SERVICE和NETWORK SERVICE读取,优先和列表访问webapps \ PythonTest文件夹和PythonEnvironments \ Python36文件夹。