2011-11-10 92 views
1

我有一個專門用於定時調用服務的請求 - 響應的控制檯應用程序。儘管如此,我們還是希望比較各種做事方式的響應時間。在向IIS發送附加請求之前需要等待多長時間

該應用可以發出兩個請求,但隨後的請求超時。一般情況下,響應時間爲< 100ms。我懷疑這些請求正在被迅速解僱,並且由於它認爲這是DOS攻擊(猜測),IIS正在進行節流。停止控制檯應用程序並重新啓動足以允許另外兩個請求。

服務器是另一臺機器(不在我的機器上運行),但在我們的防火牆內。

基本上,下面的代碼內部的運行FOR循環:

 long start = DateTime.Now.Ticks; 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL1); 

     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

     long end = DateTime.Now.Ticks; 

     long duration = end - start; 

     Console.WriteLine("duration: " + duration); 

如果這是內置於IIS一些保護,我怎樣才能使一堆的請求,並執行的響應時間,準確的分析?或者,我如何在IIS中臨時禁用此功能(但可能不推薦)?

回答

0

好吧,我很好奇,所以我把你的代碼帶入Visual Studio,果然 - 你是對的。當我在本地連接到IIS Express時(在另一個Visual Studio實例中),它工作正常,但在嘗試連接到運行IIS 7.5的真實遠程服務器時無法正常工作。然而,看起來並不正確的事情是,我可以執行控制檯應用程序,看到它在2次請求後超時,快速關閉並重新運行它,它會給我另外2個請求。這讓我覺得這不是服務器問題,而是.NET中的一些問題。如果它實際上是一種DOS預防技術,你會認爲它會超時一段固定的時間。

所以我嘗試了一下我以前使用過的第三方HTTP組件,特別是在這種情況下使用了Chilkat,並且它按預期工作。我能夠將重複的請求發送到遠程服務器。我不能確切地說出是什麼原因導致了問題,但修復可能與不使用內置的HttpWebRequest對象一樣簡單。

相關問題