我有一個IIS網站用於內部作業處理。這項工作大約需要10分鐘。當用戶點擊按鈕開始工作時,大約一分鐘後,整個頁面變白並顯示「連接超時」。然而,這項工作與調用3rd pty API有關,它們仍然在地下。連接超時但作業仍在運行
作業仍在運行時,用戶無法登錄到網站。工作完成後,用戶可以再次使用該網站。
這裏有什麼祕密嗎?
我有一個IIS網站用於內部作業處理。這項工作大約需要10分鐘。當用戶點擊按鈕開始工作時,大約一分鐘後,整個頁面變白並顯示「連接超時」。然而,這項工作與調用3rd pty API有關,它們仍然在地下。連接超時但作業仍在運行
作業仍在運行時,用戶無法登錄到網站。工作完成後,用戶可以再次使用該網站。
這裏有什麼祕密嗎?
你有幾件事在這裏玩。
通常的網頁瀏覽器之一是一兩分鐘(不知道確切的數字的) 見:connection timeout in IE 看到:在Firefox中,你應該能夠檢查about:config中
對於Web服務器和ASP。網看到HttpRuntimeSection.ExecutionTimeout Property
命令超時見Sqlcommand.CommandTimeout默認是30秒。
這就是說...只是因爲客戶端停止等待並不會強制sql server停止運行該命令。調用關閉連接應該停止服務器上的運行命令,但是您可能需要等待它回滾它所做的任何更改。
我懷疑你沒有使用SQL Server代理作業,但如果你是斷開連接,將不會停止該作業。
,如果它僅僅是一個客戶端沒有在等待您發送輸出,那麼你可以做的是發送一些輸出到客戶端...
像
Response.Write("<!-- progress ... -->");
Response.Flush();
你必須沖洗,使它不緩衝服務器端的響應
謝謝。讓我指定真實情況:在服務器端的c#代碼中,我們有一個循環發送例如400個對象到遠程API調用。該頁面顯示連接超時但服務器代碼仍在運行。讓我們排除SQL問題。 – 2013-05-02 16:38:31