繁体   English   中英

IIS 上的 Python flask 应用程序无法在 Windows Server 2019 上运行

[英]Python flask app on IIS not working on Windows Server 2019

问题

我有一个用 python 编写的简单烧瓶应用程序,我想在 Windows Server 2019 机器上使用 IIS 托管它。

该应用程序已经使用 Flask 附带的开发服务器在本地运行。 此外,完全相同的代码在我的 window-server 2016 机器以及我的 Windows7 工作站上完美运行。

令人沮丧的是,当我尝试在 Windows Server 2019 计算机上的 IIS 下运行它时,它会显示错误 500 -“FastCGI 意外退出”。 我尝试了各种各样的事情,但一无所获。 我希望有人可以提供帮助!

设计

该应用程序是此 Microsoft 网页中描述的 wfastcgi 方法的实现: https ://docs.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2019

python脚本是

app_hello.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return ' Hello, world!!!'

if __name__ == "__main__":
    app.run()

web.config 文件是

网页配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\devel\a_anomaly_detection\.venv\scripts\python.exe|c:\devel\a_anomaly_detection\.venv\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
</handlers>
        <tracing>
            <traceFailedRequests>
                <add path="*">
                    <traceAreas>
                        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket" verbosity="Verbose" />
                    </traceAreas>
                    <failureDefinitions timeTaken="00:00:00" statusCodes="500" />
                </add>
            </traceFailedRequests>
        </tracing>
</system.webServer>
<appSettings>
<!-- Required settings -->
<add key="WSGI_HANDLER" value="app_hello.app" />
<add key="PYTHONPATH" value="c:\devel\a_anomaly_detection\website" />
<add key="WSGI_LOG" value="c:\devel\a_anomaly_detection\data\logs\wfastcgi.log" />
</appSettings>
</configuration>

我的软件版本是

  • 视窗服务器 2019

  • IIS 10

  • 蟒蛇 3.7.6rc1

  • wfastcgi 3.0.0

  • 烧瓶 1.1.2

错误 500 页

[error_500_screen][1]

跟踪失败的请求

我启用了tracefailedRequests ,这是报告的内容

  1. NOTIFY_MODULE_START ModuleName="FastCgiModule", Notification="EXECUTE_REQUEST_HANDLER", fIsPostNotification="false" 09:08:17.333

  2. FASTCGI_ASSIGN_PROCESS CommandLine="c:\\devel\\a_anomaly_detection.venv\\scripts\\python.exe c:\\devel\\a_anomaly_detection.venv\\lib\\site-packages\\wfastcgi.py", IsNewProcess="true", ProcessId="3708", RequestNumber="1" 09:08:17.333

  3. FASTCGI_START 09:08:17.333

  4. FASTCGI_WAITING_FOR_RESPONSE 09:08:17.333

  5. FASTCGI_UNEXPECTED_EXIT 错误 09:08:17.349

  6. SET_RESPONSE_ERROR_DESCRIPTION 警告 ErrorDescription="c:\\devel\\a_anomaly_detection.venv\\scripts\\python.exe - FastCGI 进程意外退出" 09:08:17.349

  7. MODULE_SET_RESPONSE_ERROR_STATUS 警告 ModuleName="FastCgiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="500", HttpReason="Internal Server Error", HttpSubStatus="0", ErrorCode="无法再次设置信号量。(0x67)", ="" 09:08:17.349

  8. NOTIFY_MODULE_END ModuleName="FastCgiModule", Notification="EXECUTE_REQUEST_HANDLER", fIsPostNotificationEvent="false", NotificationStatus="NOTIFICATION_FINISH_REQUEST" 09:08:17.349

您很可能忘记在服务器上为您的虚拟环境安装 Python。 查看c:\\devel\\a_anomaly_detection\\.venv\\pyvenv.cfg文件并检查文件夹中是否确实有 Python,指定为home参数。

要进行故障排除,请从c:\\devel\\a_anomaly_detection\\website文件夹运行以下命令: c:\\devel\\a_anomaly_detection\\.venv\\scripts\\python.exe c:\\devel\\a_anomaly_detection\\.venv\\lib\\site-packages\\wfastcgi.py并检查其输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM