这个问题已经在这里有了答案: > Asp.net Validation of viewstate MAC failed 13个
净4.0框架,
我已经在这个框架上做了很多网站,但从未收到这样的错误
<code> "Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster." </code>
我认为此错误是由于使用Cookie引起的,因为仅在本网站中我使用过Cookie.
我过去很少每周几乎两次收到此错误的另一件事
我已经阅读了很多解决方案,但是对于4.0来说却很少见
阅读的解决方案,例如推杆
<code><machineKey validationKey="6628ECBFB40F6F852AB543C23C0B83C1679C5AAE35AD72FACF5B9F4FDB70AA1F648A1D5877CE1F9D69F08BAD919BFBAC0976D9119B8F32CFB80814E4E943F8EE" decryptionKey="42F45B378301126EB4CCBA16995304263754EF116E08A81003A936CC04B7537F" validation="SHA1" decryption="AES" /> </code>
在Web配置中
或添加
<code><pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" /> </code>
在webconfig中
但是我应该在上面的Web配置中添加哪里
<code><?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="Conn" connectionString="Data Source=abc; Initial Catalog=alfadesi_trikon;User ID=abc;Password=abc" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<globalization culture="en-AU" uiCulture="en-AU" />
<compilation debug="true" targetFramework="4.0"/>
<authentication mode="Windows"/>
<customErrors mode="Off"></customErrors>
</system.web>
</configuration>
</code>
解决方法:
您可以在system.web元素中添加机器密钥.
例如
<code><system.web> <machineKey validationKey="1234567890123456789012345678901234567890AAAAAAAAAA" decryptionKey="123456789012345678901234567890123456789012345678" validation="SHA1" decryption="Auto" /> </system.web> </code>
如果不想将每个应用程序的机器密钥放在web.config中,则需要将其用于每个.Net Framework版本的机器级别的web.config中.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!