2012-03-06 131 views
0

我打算編寫一個小程序,通過並行多個連接來檢查IIS服務連接性和統計信息。 IIS服務在NLB服務後面(並且有3種不同的服務)。所以我到目前爲止做的是:在C#中編程檢查網絡負載平衡(NLB)和IIS

  1. 創建一個http處理程序,返回當前IIS服務器的名稱。
  2. 在向NLB發送請求的WinForms應用程序中創建小型HTTP客戶端。在這個客戶端中:通過WebClient對象的一系列100個並行請求被髮送到NLB服務。

結果:當我將請求發送到NLB時,總是單個IIS服務器響應。當我嘗試將URI更改爲IIS服務器時 - 每個服務器都會根據自己的請求做出響應。現在,我認爲這意味着NLB不會做它應該做的事情,因爲它總是導航到同一個服務器(對於每次運行,單個服務器的答案 - 它可以改變,但不能用於運行)。

我提到可以檢查NLB的檢查嗎? 如果不是,我如何通過Winforms應用程序檢查它?

在此先感謝。

+0

是請求克隆嗎?他們有快速反應嗎? – Jodrell 2012-03-06 09:10:11

+0

他們有快速的反應,但他們不是克隆... – lionheart 2012-03-06 09:47:07

回答

1

這是NLB的典型行爲。它會嘗試每次給你同一個主機。你不希望它每次都選擇一個隨機的服務器。

您將從檢查IIS服務器日誌,性能計數器或內置的監視例程中獲得更多有用的信息。

+0

我認爲每個請求都是在處理無狀態應用程序時自己處理的......它不能在15分鐘內發送請求 - 每次都是相同的IIS服務器響應。這意味着NLB無法導航和重定向通過哪個服務器是最可用的,如果它是關於平衡。 – lionheart 2012-03-06 09:51:59

+0

您是否認爲我需要在http處理程序中放置sleep(),以使服務器可用於檢查目的? – lionheart 2012-03-06 10:11:49

+0

不,這將是一個無用的測試,IIS可能會排隊請求。 NLB與機器網絡連接相關,而不是IIS可用性以服務於響應。運行測試時,您最好重新啓動其中一臺服務器。 – Adrian 2012-03-06 10:57:42

1

NLB經理有一個Affinity setting

將此設置從單個更改爲無,並檢查請求每次都要到不同的服務器。