我尝试让 Flask 应用程序在 Windows 上的 IIS 上运行。
原因是使用 IIS 机制完成 Windows 身份验证的单点登录。
我让它在我的开发机器上运行。但是在实际的生产环境中是行不通的。由于某些原因,我收到错误 500,但我没有看到实际的 Flask 错误消息。
在设置写入日志文件的权限之前,我在设置过程中看到了 python 错误消息。它告诉我缺少的权利。我猜这应该意味着 FastCGI 配置正确。
现在,在我设置写访问权限后,我收到一个 IIS 错误 500 页面,告诉我 FastCGI 出了问题。但是我没有得到任何日志条目,即使我设置了写入它们的权限。Windows 事件日志中没有日志文件和条目。没有什么。
您知道获取实际错误消息的方法吗?
[更新] 启用失败的请求跟踪后,我收到以下错误:
<RenderingInfo Culture="en-US">
<Opcode>FASTCGI_UNKNOWN_ERROR</Opcode>
<Keywords>
<Keyword>FastCGI</Keyword>
</Keywords>
<freb:Description Data="ErrorCode">The directory name is invalid.
(0x8007010b)</freb:Description>
</RenderingInfo>
web.config 如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\app_name" />
<!-- The handler here is specific to Bottle; see the next section. -->
<add key="WSGI_HANDLER" value="main.app" />
<add key="WSGI_LOG" value="C:\inetpub\wwwroot\app_name\LogFiles\wfastcgi.log" />
</appSettings>
<system.web>
<customErrors mode="Off" />
</system.web>
<system.webServer>
<handlers>
<clear />
<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>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
如果我猜的话,里面有空白的“程序文件”文件夹的路径会导致错误。