2013-05-02 54 views
0

我有一個IIS網站用於內部作業處理。這項工作大約需要10分鐘。當用戶點擊按鈕開始工作時,大約一分鐘後,整個頁面變白並顯示「連接超時」。然而,這項工作與調用3rd pty API有關,它們仍然在地下。連接超時但作業仍在運行

作業仍在運行時,用戶無法登錄到網站。工作完成後,用戶可以再次使用該網站。

這裏有什麼祕密嗎?

回答

0

你有幾件事在這裏玩。

  1. 時間Web瀏覽器將等待響應
  2. 時間web服務器將處理請求
  3. 時間的SQL命令將在客戶端超時之前執行。
  4. SQL Server會在終止命令之前運行一個命令。

通常的網頁瀏覽器之一是一兩分鐘(不知道確切的數字的) 見:connection timeout in IE 看到:在Firefox中,你應該能夠檢查about:config中

對於Web服務器和ASP。網看到HttpRuntimeSection.ExecutionTimeout Property

命令超時見Sqlcommand.CommandTimeout默認是30秒。

這就是說...只是因爲客戶端停止等待並不會強制sql server停止運行該命令。調用關閉連接應該停止服務器上的運行命令,但是您可能需要等待它回滾它所做的任何更改。

我懷疑你沒有使用SQL Server代理作業,但如果你是斷開連接,將不會停止該作業。

,如果它僅僅是一個客戶端沒有在等待您發送輸出,那麼你可以做的是發送一些輸出到客戶端...

Response.Write("<!-- progress ... -->"); 
    Response.Flush(); 

你必須沖洗,使它不緩衝服務器端的響應

+0

謝謝。讓我指定真實情況:在服務器端的c#代碼中,我們有一個循環發送例如400個對象到遠程API調用。該頁面顯示連接超時但服務器代碼仍在運行。讓我們排除SQL問題。 – 2013-05-02 16:38:31

相關問題