2017-05-26 45 views
9

我有一個.Net應用程序正在運行。在asp.net中,客戶端的緩慢互聯網如何成爲服務器超時異常的原因?

我們昨天有一波動連接。在這種情況下進行測試時,我們收到了多個服務器超時例外電子郵件,如下所示。

服務器超時

Type : System.Web.HttpException, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
Message : Request timed out. 
Source : 
Help link : 
WebEventCode : 3001 
ErrorCode : -2147467259 
Data : System.Collections.ListDictionaryInternal 
TargetSite : 
HResult : -2147467259 
Stack Trace : The stack trace is unavailable. 
Additional Info: 

重要提示:上面的異常,而這樣做在更新面板放置一個按鈕後AJAX的發生。

我在這裏的問題是,爲什麼會在客戶端的互聯網速度較慢提出這樣的服務器超時異常?

是不是服務器超時異常有關,這種情況下,服務器無法執行中的httpRuntime設置在底層的時間提要求?可能是由於一些冗長的操作或一些長時間的數據庫執行所花費的時間比在HttpRuntime下設置的時間要長。

如果服務器無法連接到客戶端由於客戶波動的互聯網,那麼客戶端已斷開的異常將提高我們昨天做。但是我無法總結出這個服務器超時異常的原因。

我已經知道,增加執行超時將解決這個問題,但我不得不爲的理由,爲什麼服務器超時的這種例外提出提供技術解釋。

這裏我最好的猜測是,ajax請求會與服務器進行一些連續的通信以執行單個請求服務器,並且如果由於客戶端的不良Internet而未收到一些所需的進一步通信消息,則會引發超時異常。我通過互聯網搜索相同的支持我的猜測,但徒勞無功。

而且以提供環境的詳細信息,有服務於該請求的負載平衡器。

任何幫助將不勝感激。

+0

您是否嘗試過收集堆棧跟蹤? https://docs.microsoft.com/en-us/iis/troubleshoot/using-failed-request-tracing/troubleshooting-failed-requests-using-tracing-in-iis –

+0

我沒有訪問服務器,我只是有這個例外電子郵件。在例外電子郵件中,堆棧跟蹤不可用。 –

+0

當您將此特定連接與正常情況進行比較時,Web服務日誌可能會對您有所幫助。連接可能在中等要求下剝落。請記住,您無法控制一旦連接到互聯網後會發生什麼情況,並且用戶的糟糕連接不是您可以解決的問題。 –

回答

4

這是因爲(你寫的)客戶端到服務器的連接速度很慢,所以如果服務器(或客戶端)發送數據到這個服務器,連接不能處理它,所以你得到超時錯誤,因爲數據不能在規定的時間內傳輸。

你也寫,這是通過發送Ajax請求引起的,所以也許嘗試增加execusion超時在Web配置文件(web.config中):

<httpRuntime executionTimeout = "number(in seconds)"/> 

enter image description here

更多executionTimeoutherehere about Ajax requests

+0

你認爲哪個部分是問題?請求部分(圖像中的1)或響應部分(圖像中的2a)? –

+0

@DineshPrajapati我事情是結果(2a)的問題,因爲你正在返回一些信息,服務器無法在有限的時間訪問客戶端。 –

+0

你找到任何支持的正式文件,我可以參照它會說,服務器引發時超時而深遠出來給客戶端此異常。因爲在這種情況下會不會發生「客戶端斷開連接」異常?我不確定。 –

0

首先,我覺得這個錯誤的原因是因爲您的應用程序的請求與遠程服務器連接所需的執行時間超過了當前設置的ASP.NET請求執行超時值。具體根據MSDN Exception Document,默認值被設置到110秒,在它被指出,如:

的ExecutionTimeout屬性指示由ASP被自動關閉 之前的請求允許執行秒 的最大數目。淨。

因此,基於錯誤的詳細事件代碼3001發生,因爲在請求的超時期間沒有收到響應。您可以使用IIS故障排除失敗的請求機制來找出確切的問題,例如在從您的ASP.NET應用程序進行調用時性能不佳/死鎖。

其次,它不涉及到用戶的網絡連接問題,否則你得到的異常與像連接關閉或保活失敗的狀態。有關詳細信息,請參閱此article。瀏覽器將等待60分鐘(這是服務器無法回答任何請求的很長一段時間),以便服務器響應。

而在當瀏覽器放棄任何要求任何情況下,它會關閉套接字,你會從瀏覽器中得到一個錯誤頁面。你沒有得到任何與切斷端有關的東西。

+0

Mine是ajax請求,在ajax請求的情況下,我不認爲瀏覽器會拉錯誤頁面。另外,我沒有在文章中找到解釋ajax請求時間的任何內容。 –

相關問題