如何解决 Python Flask wfastcgi 应用程序上的 0x80070585 错误代码?

如何解决 Python Flask wfastcgi 应用程序上的 0x80070585 错误代码?

我正在尝试在 IIS 上部署 Flask 应用程序(通常在 Nginx/Gunicorn 堆栈上执行)。

我的堆栈

我正在使用全局安装的 Python 3.7 和 Windows 10 pro 上的 IIS 10。

我尝试过

  • 在 IIS 上激活 CGI 服务
  • 从安装 wfastcgihttps://pypi.org/project/wfastcgi/
  • 启用 wfastcgi wfastcgi enable(并保存配置文件的输出)
  • 将我的应用程序部署到wwwroot/myapp
  • web.config在该文件夹中添加myapp如下文件:
<configuration>
  <system.webServer>
    <handlers>
      <add name="Python FastCGI"
           path="*"
           verb="*"
           modules="FastCgiModule"
           scriptProcessor="C:\Program Files\Python37\python.exe|C:\Program Files\Python37\Lib\site-packages\wfastcgi.py"
           resourceType="Unspecified"
           requireAccess="Script" />
    </handlers>
  </system.webServer>

  <appSettings>
    <!-- Required settings -->
    <add key="WSGI_HANDLER" value="backend.wsgi.socketio" />
    <add key="PYTHONPATH" value="C:\inetpub\wwwroot\myapp" />
  </appSettings>
</configuration>

socketio是我的 Flask 应用程序的名称,当我运行 wsgi 文件“standalone”时一切正常。

  • 在 IIS 中创建一个链接到该文件夹​​且具有正确物理路径的应用程序

    在测试应用程序参数时,身份验证步骤正常,授权步骤引发警告但没有错误。

结果

当我尝试访问我的应用程序时,出现 500 HTTP 错误,并显示以下 IIS 错误代码 0x80070585。

当我“破坏”我的web.config文件(例如删除标签关闭)时,IIS 告诉我该文件格式不正确,因此该文件是可访问的。

由于错误似乎来自 scriptProcessor,我仔细检查了C:\Program Files\Python37\python.exeC:\Program Files\Python37\Lib\site-packages\wfastcgi.py是否存在。IIS 是否存在访问问题?

我尝试检查 IIS 日志,但那并不是很详细。我只有 HTTP 请求日志。

我应该去哪里挖掘才能找到更多日志?

谢谢您的帮助,请注意,我对 IIS 和 Microsoft 服务器完全陌生,所以我可能错过了一些重要的东西。

答案1

由于微软似乎放弃了这个堆栈,唯一认真的解决方案是切换到积极维护的解决方案,如 Nginx 或 Apache。感谢 @Lex Li 提供的通信链接。

相关内容