Iis

如何解決我的 Python Flask wfastcgi 應用程序上的 0x80070585 錯誤程式碼?

  • April 12, 2019

我正在嘗試在 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.exeC:\Program Files\Python37\Lib\site-packages\wfastcgi.py存在。IIS可能有訪問問題嗎?

我試圖檢查 IIS 日誌,但這並不是很詳細。我只有 HTTP 請求日誌。

我應該在哪裡探勘以找到更多日誌?

感謝您的幫助,請注意,我對 IIS 和 Microsoft 伺服器完全陌生,所以我可能錯過了一些重要的事情。

由於微軟似乎放棄了這個堆棧,唯一嚴肅的解決方案是切換到積極維護的解決方案,如 Nginx 或 Apache。感謝@Lex Li 提供通信連結。

引用自:https://serverfault.com/questions/962577