我已经在这里和IIS论坛上阅读了有关此问题的所有文章,也将其发布到了Google的第二页上……仍然无法正常工作。
我想在Windows Server 2016上的IIS中运行Flask / Python应用,但我一直收到此错误:
HTTP Error 500.0 - Internal Server Error
C:\Program Files\Python38\python.exe - The FastCGI process exited unexpectedly
Detailed Error Information:
Module FastCgiModule
Notification ExecuteRequestHandler
Handler FastCGI-Python
Error Code 0x00000002
我设法使其在我的计算机(Windows 10)上运行,但在服务器端不起作用。
环境
我尝试了不同版本的Python(3.6、3.7、3.8)。在我的Windows 10上,它正在运行Python 3.7,并且运行良好。我无法使用[3.4]之一中建议的Python 3.4.2,因为Flask在3.5和更高版本上运行,显然posts在我的机器上可以与Python 3.7正常工作。
我为我的应用程序池以及Web应用程序文件夹和Python文件夹上的IIS_IUSRS授予了完全权限。
我也已经安装了Microsoft C ++ Build Tools。
并且IIS的配置已通过“共享配置”从我的机器共享到服务器,因此所有内容都是相同的。我只是在配置文件中修改了一些路径。
我也尝试在Flask WSGI服务器上运行Web应用程序以进行开发,但效果很好。
有人知道我还能做什么吗?任何建议都很好。
谢谢:)
您可以按照以下步骤在iis中配置python flask应用程序:
1)首先,您需要在服务器上安装python,wfastcgi和flask。
您可以从下面的链接下载python:
wfastcgi
注意:如果可能,请使用3.6以上的python版本。
2)在安装python之后,安装wfastcgi。以管理员身份运行命令提示符,然后运行以下命令:
https://www.python.org/downloads/
3)下面是我的烧瓶示例:
pip install wfastcgi
wfastcgi-enable
4)创建应用程序以运行它之后,使用以下命令:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello from FastCGI via IIS!"
if __name__ == "__main__":
app.run()
5)启用iis的cgi功能:
python app.py
6)打开iis。
右键单击服务器名称,然后选择添加站点。
输入站点名称的物理路径和站点绑定。
添加站点后,选择站点名称,然后从中间窗格中选择处理程序映射功能。
单击“添加模块映射”
可执行路径值:
C:\ Python37-32 \ python.exe | C:\ Python37-32 \ Lib \ site-packages \ wfastcgi.py
单击“请求限制”。确保未选中“仅在请求映射到时才调用处理程序:”复选框:
单击此处的“是”:
7)现在返回并选择应用程序设置功能。
单击操作窗格中的添加。
设置PYTHONPATH变量(这是您的站点文件夹路径):
并且WSGI_HANDLER(我的Flask应用程序名为app.py,因此值为app.app -如果您的名称为site.py,则为site.app或类似名称:]
8)单击“确定”并浏览到您的站点。
注意:不要忘记为站点文件夹和python文件夹分配iis_iusrs和iusr权限。