一個負載平衡問題的解決過程

來源:互聯網
上載者:User
過程|解決|問題
環境說明:
開發平台是DOTNET  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_MACHINE oftware\Microsoft\NET Framework Setup\NDP\v1.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 <machineKey> 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再加上逾時時間。
註:本人對負載平衡研究甚少,不知其他類似軟體是否也如此設定,其原理應該都差不多。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。