Iis

文件上傳 10 分鐘後 ASP.NET MVC 出現錯誤 504

  • January 29, 2016

我有一個 ASP.NET MVC2 Web 應用程序,使用 SQL Server 2008 R2,執行 IIS 6.2。我有一個功能,一位特定的管理員需要上傳大約 5000 個文件,然後將其處理並儲存在伺服器中,同時將它們的名稱保存在數據庫中。

問題是,在客戶端,文件上傳開始後 10 分鐘,我得到:錯誤 504 超時,網關超時。我更改了 web.config 中的 httpRuntime.ExecutionTimeout 值,但並沒有解決問題。

有誰知道限制我儲存的價值在哪裡?

這是我的 web.config 文件: http: //pastebin.com/VXs0BFTp

編輯:此外,在收到錯誤 504 後,數據庫中的數據儲存仍然會繼續進行。

從您的描述看來,您的客戶端 - > Web 伺服器連接超時很可能與代理使用有關。如果您的伺服器處理文件的時間超過 10 分鐘,您的客戶端不會及時收到響應,但 Web 伺服器可以進一步處理。

httpRuntime.ExecutionTimeout指定在關閉之前允許 IIS 執行緒處理請求的程度,因此它不會對您的問題產生任何影響。

如果您無法優化文件的伺服器端處理,我的建議是重新設計。一種可能的方法是上傳所有文件,盡快響應客戶端並非同步處理。當然,應該更改客戶端 UI 以便能夠顯示處理狀態(例如,以百分比表示)。

如果上傳過程耗時過多(即幾分鐘),解決方案可能是讓管理員將文件傳輸到網路位置,然後開始處理(Web 伺服器應該有權從該位置讀取)。它不是非常使用者友好,但管理員不是普通使用者。

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