多台Web伺服器做負載均衡解決方案

來源:互聯網
上載者:User
關鍵字 負載均衡 運行

環境說明:

開發平臺是DO.NET B/S .NET Framework 1.1

正式WEB伺服器和測試機,均為win2003

原有一個主網站,在六台WEB伺服器做負載均衡。 運行比較穩定。

現新開發一個子站,將佈署在另三台WEB伺服器上做負載均衡。 這個負載均衡設置類似主網站的設置。

解決步驟:

1)子站在測試機測試通過,運行正常。 準備佈署到正式環境下(三台WEB伺服器)

2)將子站程式拷貝到那三台WEB伺服器上,配置好子站相關配置,開放網站與負載均衡開始測試。

3)測試時,頁面顯示正常,但在觸發服務端事件時出現異常。

錯誤資訊「Viewstate is invalid for this page」(此頁的檢視狀態無效)沒有為解決此問題提供足夠資訊

同樣的程式為何在測試機運行沒問題,放到正式環境下,就出現異常呢?

在微軟網站要查到這個異常的解釋(HTTP://support.microsoft.com/default.aspx?scid=kb;zh-cn;831150),說建議安裝Microsoft .NET Framework 1.1 Service Pack 1。

於是,懷疑沒有裝這個補丁,就查看登錄機碼:

項名稱:HKEY_LOCAL_MACHINESoftwareMicrosoftNET Framework SetupNDPv1.1.4322

SP值為0,表明沒有裝Framework 1.1 Service Pack,

然後去微軟網站下載了.NET Framework 1.1 Service Pack 1和.NET Framework 1.1 Service Pack 1 ASP.NET 安全更新 - Windows Server 2003

4)裝上這兩個補丁後,運行子站程式,在觸發服務端事件時仍舊出現異常。 異常如下:

異常詳細資訊:System.Web.HttpException: 無法驗證資料。

堆疊追蹤:

以下為引用的內容:

[HttpException (0x80004005): 無法驗證資料。 ]

[HttpException (0x80004005): Authentication of viewstate failed. 1) If this is a cluster, edit configuration so all servers use the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. 2) Viewstate can only be posted back to the same page. 3) The viewstate for this page might be corrupted.]

再回到831150那篇文章看:「應用此修復程式後,檢視狀態錯誤資訊標題將變成「Unable to Validate Data」。 儘管新的錯誤資訊格式沒有對問題進行具體描述,但它比以前的錯誤資訊格式提供了更多資訊。 」

得知應該是ViewState值已被截斷?!

問題就轉化:什麼原因導致"ViewState值已被截斷"呢?

因為程式在測試環境下運行沒問題的,那麼可能是系統級的問題。

比較一下正式和測試環境:正式環境是三台Server做負載均衡,而測試環境只一台Server。

5)將負載均衡設置修改了一下,只開放一台WEB Server。 測試後,發現不出現那個異常。 三台機分別測試,均無異常。

推測:可能是負載均衡設置有問題。 於是找來系統管理員,他說,子站的負載均衡設置跟主站一樣的啊。 但還是請他再確認一下兩個負載均衡設置的不同之處。

經再次的仔細檢查,發現負載均衡Pool的Persistence Type(進程延續)為None,也就是說服務端不保持連接狀態。 這樣,每次服務端事件被觸發時,就會導致"ViewState值已被截斷"。 於是將Persistence Type(進程延續)的值改為Simple,Timeout設為600秒。

總結:

程式師不單要寫好程式,也要適當的瞭解系統。 這個問題,不一定會經常遇到,作為一個解決問題的思路,供大家分享。

附:負載均衡一般設三個地方來保證進程延續。 首先啟動負載均衡,然後設置「Enable Connection Rebind」為true.最後Persistence Type一般設為Simple再加上超時時間。

注:本人對負載均衡研究甚少,不知其他類似軟體是否也如此設置,其原理應該都差不多。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.