2012-10-22 67 views
0

,當我試圖調用OnClick在我的形式,我得到這個錯誤驗證視圖狀態錯誤

錯誤:Failed validation of viewstate MAC. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same <machineKey> validationKey and validation algorithm. AutoGenerate can not be used in a cluster.

代碼隱藏

<form runat="server" id="form1"> <asp:Button ID="btnImprimeBematech" runat="server" OnClick="btnImprimeBematech_OnClick" Text="Imprime Novo Bematech" /> </form>

我不因爲在StackOverflow的其他線程中,有些解決方案是中的操作標記,但是我的表單中沒有任何action

我試圖把EnableViewStateMac="false" EnableSessionState="False" EnableViewState="false"<%@ Page但仍是同樣的錯誤

+0

您的應用程序是否由Web Farm或集羣控制?或者在點擊按鈕之前是否回收了應用程序池? –

+0

FrédéricHamidi我的申請不是網絡農場或集羣的主人。 –

回答

0

machineKey值必須在一個webfarm所有機器一樣。

鏈接:http://msdn2.microsoft.com/en-us/library/ms998288.aspx

您的所有網頁上設置該屬性的不只是一個頁面

In web.config 

<pages enableViewStateMac="false"> 

它始終是最好去指定用於在web.config中加密和解密的自定義鍵。這是因爲當您將EnableViewStateMac值設置爲false時,會使您的應用程序受到安全威脅。這是因爲視圖狀態的驗證在這種情況下不會發生。

<machineKey validationKey="<encryptionkey>" decryptionKey="<decryptionkey>" validation="SHA1" decryption="Auto"/>