Iis
如何解決我的 Python Flask wfastcgi 應用程序上的 0x80070585 錯誤程式碼?
我正在嘗試在 IIS 上部署 Flask 應用程序(通常在 Nginx/Gunicorn 堆棧上進行)。
我的堆棧
我正在使用全域安裝的 Python 3.7,Windows 10 pro 上的 IIS 10。
我試過的
- 在 IIS 上啟動 CGI 服務
- 從https://pypi.org/project/wfastcgi/安裝 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 文件“獨立”時一切正常。
- 在 IIS 中創建一個應用程序,該應用程序使用正確的物理路徑連結到該文件夾
在測試應用程序參數時,身份驗證步驟正常,授權步驟發出警告但沒有錯誤。
結果
當我嘗試訪問我的應用程序時,我收到一個 500 HTTP 錯誤,並帶有以下 0x80070585 IIS 錯誤程式碼。
當我“破壞”我的
web.config
文件(例如刪除標籤關閉)時,IIS 告訴我該文件格式不正確,因此該文件是可訪問的。由於錯誤似乎來自 scriptProcessor,我仔細檢查了兩者
C:\Program Files\Python37\python.exe
並C:\Program Files\Python37\Lib\site-packages\wfastcgi.py
存在。IIS可能有訪問問題嗎?我試圖檢查 IIS 日誌,但這並不是很詳細。我只有 HTTP 請求日誌。
我應該在哪裡探勘以找到更多日誌?
感謝您的幫助,請注意,我對 IIS 和 Microsoft 伺服器完全陌生,所以我可能錯過了一些重要的事情。
由於微軟似乎放棄了這個堆棧,唯一嚴肅的解決方案是切換到積極維護的解決方案,如 Nginx 或 Apache。感謝@Lex Li 提供通信連結。