2012-05-23 112 views
0

我們有一個Web應用程序,它執行一些計算並將文件返回給客戶端。當計算時間少於5分鐘時,IE和Chrome上的所有工作都可以正常工作,並且我們獲取該文件,但是如果計算時間超過5分鐘,Chrome瀏覽器將繼續運行並最終獲取「Internet Explorer無法顯示網頁」的信息來自服務器的文件。5分鐘後IE超時

我試着改變WinInet的KeepAliveTimeout,ReceiveTimeout,ServerInfoTimeout等註冊表設置,但沒有幫助。點擊診斷連接問題按鈕顯示「Windows收到HTTPerror消息:403(禁止)來自」消息,我認爲這是因爲它試圖再次訪問沒有憑據的網站並失敗。當使用fiddler時,請求終止於504狀態,並顯示此消息「ReadResponse()失敗:服務器沒有爲此請求返回響應。」有趣的是,我曾經觀察到,如果Fiddler正在運行,甚至Chrome也會超時(雖然沒有通過重新運行驗證)。

這是一個使用MVC框架的ASP.Net Web應用程序。

我花了相當多的時間,但一直沒能找到解決方案。任何有用的指針真的很感激。

回答

1

KB181050

你可以一個漫長的過程,通常分解成更小的碎片。或者,服務器可以返回狀態數據以更新用戶關於該過程的信息。另外,您可以創建一個長的服務器進程,該進程具有基於消息或異步的方法,以便在作業提交後立即返回給用戶,然後在完成長進程後通知用戶。

換言之,創建一個<div>並立即填補<div>用「處理」值的請求已被所述服務器接受後。然後,使用ajax或javascript更新同樣的<div>,並在處理完成後得到結果。