我已经阅读了所有关于这个问题的帖子,在这里和IIS论坛上,得到了它的第二页在谷歌太...仍然不能让它工作。
我想在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)上工作,但在服务器上没有。
环境状况
- Windows Server 2016操作系统
- 互联网信息服务10
- Python 3.8语言
- wfastcgi 3.0.0软件包
- flask 1.1.1
我尝试了不同版本的Python(3.6,3.7,3.8)。在我的Windows 10上,它运行的是Python 3.7,运行得很好。我不能使用Python 3.4.2,因为它在一个posts中被建议,因为Flask运行在3.5和更高版本上,显然wfastcgi
在我的机器上运行Python 3.7很好。
我授予了对应用程序池以及Web应用程序文件夹和Python文件夹上的IIS_IUSRS的完全权限。
我也安装了Microsoft C++生成工具。
而且IIS的配置已经通过“共享配置”从我的机器共享到了服务器,所以一切都是一样的,我只是在config文件中改编了一些路径。
我也试着在Flask WSGI服务器上运行Web应用程序进行开发,效果很好。
有人知道我还能做些什么吗?任何建议都会很好。
谢谢你:)
编辑:我添加了一条来自事件查看器的警告消息。
+ System
- EventData
Path C:\inetpub\history\CFGHISTORY_0000000051
12000780
--------------------------------------------------------------------------------
Binary data:
In Words
0000: 80070012
In Bytes
0000: 12 00 07 80
编辑:添加了web.config文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="FastCGI-Python" />
<add name="FastCGI-Python" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files\Python38\python.exe|C:\Program Files\Python38\lib\site-packages\wfastcgi-3.0.0-py3.8.egg\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<security>
<authentication>
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
<appSettings>
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\flaskr" />
<add key="WSGI_HANDLER" value="__init__.app" />
<add key="WSGI_LOG" value="C:\inetpub\wwwroot\flaskr\wfastcgi.log" />
</appSettings>
</configuration>
4条答案
按热度按时间3ks5zfa01#
我的问题是,我可以通过cmd/PowerShell运行Flask应用程序,但当我通过IIS运行它时,它返回上述错误,错误代码为0x 00000067。我尝试了很多不同的方法,包括设置权限等。最后,我通过重新安装Python(在我的例子中是3.9.6)解决了这个问题。我为所有用户安装了它(通过高级选项),在文件夹C:\Python39(我很小心,没有把它放在C:\Program Files中,因为有些人报告了双引号的问题)。
ovfsdjhp2#
我试图安装Windows C以外的其他路径。我得到了同样的错误。然后我通过进行以下设置成功地将其安装在E驱动器上。
您可以查看以下链接
https://mtuseeq.medium.com/how-to-deploy-flask-app-on-windows-server-using-fastcgi-and-iis-73d8139d5342
8ulbf1ek3#
您可以按照以下步骤在iis中配置python flask应用程序:
1)首先,您需要在服务器上安装python、wfastcgi和flask。
你可以从下面的链接下载python:
https://www.python.org/downloads/
注意:如果可能,请使用python 3.6以上版本。
2)安装python后,安装wfastcgi。以管理员身份运行命令提示符,并运行以下命令:
3)下面是我 flask 例子:
4)创建应用程序后运行它使用以下命令:
5)启用iis的cgi功能:
6)打开IIS。
右键单击服务器名称并选择“添加站点”。
请输入站点名称物理路径和站点绑定。
添加站点后,请选择站点名称,然后从中间窗格中选择处理程序Map功能。
单击“添加模块Map”
可执行文件路径值:
C:\Python37-32\python.exe| C:\Python37-32\数据库\网站包\wfastcgi.py
x1c4d 1x指令集
单击“请求限制”。确保取消选中“仅当请求Map到时才调用处理程序:“复选框:
单击此处的“是”:
指令集
7)现在返回并选择应用程序设置功能。
从操作窗格中单击添加。
指令集
设置PYTHONPATH变量(即站点文件夹路径):
指令集
以及WSGI_HANDLER(我的Flask应用程序名为app.py,因此值为app.app-如果您的应用程序名为site.py,则值为site.app或类似名称):
文件
8)单击“确定”并浏览到您的站点。
注意:不要忘记为站点文件夹与python文件夹分配iis_iusrs与iusr权限.
50pmv0ei4#
检查您的机器中是否安装了python的生产版本和最新安装的python版本,您必须安装产品版本(您开发Web应用程序时使用的版本)并按原样配置fastcgi和处理程序。