我已经阅读了关于这个问题的所有帖子,在这里和 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)上工作,但在服务器上不行。
环境
- 视窗服务器 2016
- IIS 10
- 蟒蛇 3.8
- wfastcgi 3.0.0
- 烧瓶 1.1.1
我尝试了不同版本的 Python(3.6、3.7、3.8)。在我的 Windows 10 上,它运行 Python 3.7 并且运行良好。我不能使用 Python 3.4.2,正如其中一篇文章中所建议的那样,因为 Flask 在 3.5 或更高版本上运行,并且显然wfastcgi
可以在我的机器上与 Python 3.7 一起正常工作。
我授予了对我的应用程序池以及我的 Web 应用程序文件夹和 Python 文件夹上的 IIS_IUSRS 的完全权限。
我也安装了 Microsoft C++ Build Tools。
并且IIS的配置已经通过“共享配置”从我的机器共享到服务器,所以一切都是一样的。我只是在配置文件中调整了一些路径。
我还尝试在 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>