2009-12-10 55 views
0

當我的網頁閒置超過5分鐘時,會發生以下錯誤。網頁中的狀態錯誤

錯誤:Sys.WebForms.PageRequestManagerServerErrorException:驗證視圖狀態MAC失敗。如果此應用程序由Web Farm或羣集託管,請確保配置指定相同的驗證密鑰和驗證算法。 AutoGenerate不能在羣集中使用。 源文件:http://www.dial4jobz.com/ScriptResource.axd?d=Xl5p0QQ_qaR3K9bIVhwC3LyqjOX_oAKyeLj_-uS5j1VoFExVtm3XAHiq64EGJt04xntLJvh-9y3pvN3dvKgg5b6sQwkFvX7GT4f0aKn7iyc1&t=73e6f815

多諾,笏是這個錯誤的原因..我打開一個網頁,5分鐘後,當我訪問它,它顯示這種錯誤..我不' t有任何線索,爲什麼會出現這種錯誤.. Plz,給我任何想法?

回答

1

我有同樣的問題,這是兩個解決方案,我發現,如果你沒有使用WebFarm,這可能有助於:

1.禁用ViewState的MAC

在您的網頁(的.aspx)@ Page指令可以添加屬性EnableViewStateMac="false"。通過這樣做將禁用檢查,然後問題就會消失。

可惜微軟並不建議出於安全考慮,這樣做:

This attribute should never be set to false in a production Web site, even if the application or page does not use view state. The view state MAC helps ensure the security of other ASP.NET functions in addition to view state.

來源:Microsoft

2.檢查HTML

有在ASP.Net造成的錯誤在您的<form>標記中設置了「action」屬性時發生此問題。例如:

<form runat="server" action="page.aspx"> 

移除此屬性,將刪除的問題,所以你現在應該有這樣的:

<form runat="server"> 

顯然,這種解決方案可能會引發其他問題,這取決於你的應用程序。一個大問題是使用Ajax加載頁面時。

3.避免ViewStates

在某些情況下使用Ajax時它可能是很容易擺脫ViewStates的。您可以將Ajax請求發送到您的服務器以執行操作,然後顯示結果,無需使用ViewState。通過這樣做,您不會有關於ViewState驗證的問題。

我還發現其他建議those pages可能會幫助你,如果上述說明沒有解決您的問題。