2008年11月12日 星期三

ASP.NET: Validation of viewstate MAC failed

公司的一個系統用ASP.Net開發,用兩部server+loadbalance switch作負載平衡,常碰到網頁發生"Validation of viewstate MAC failed"的錯誤,粗略了解viewstate大概是主機將一些資訊hash過的資料,作為傳值及驗證用。幸好google到一些前人的經驗,很快解決了問題。
範例:
<machinekey decryption="AES" validation="SHA1" validationkey="1239427563465sdfsf..." decryptionkey="sdf234rgr34t...">

將此設定放在web.config裡面的底下。

msdn提到-- validation的參數: MD5--Specifies that ASP.NET uses the Message Digest 5 (MD5) hash algorithm to validate data. This algorithm produces better performance than SHA1.



參考資料:
Validation of viewstate MAC failed 驗證ViewState時 MAC 失敗

當 ASP.NET 發生 Viewstate MAC 的驗證失敗

machineKey Element (ASP.NET Settings Schema)

ASP.NET machineKey Generator

在 ASP.NET ViewState 中尋寶

執行效能: ASP.NET 應用程式的擴充策略

沒有留言: