4

net 4.0 框架,我在这个框架中做了很多网站,但从来没有出现过这样的错误

 "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."

我认为这个错误是由于使用 cookie 造成的,因为只有在这个网站上我才使用过 cookie。

另一件事我过去很少遇到这个错误,几乎每周 2 次

我已经阅读了很多解决方案,但对于 4.0 来说非常罕见

解决方案阅读,例如放

<machineKey validationKey="6628ECBFB40F6F852AB543C23C0B83C1679C5AAE35AD72FACF5B9F4FDB70AA1F648A1D5877CE1F9D69F08BAD919BFBAC0976D9119B8F32CFB80814E4E943F8EE" decryptionKey="42F45B378301126EB4CCBA16995304263754EF116E08A81003A936CC04B7537F" validation="SHA1" decryption="AES" /> 

在网络配置或添加

<pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never" />

在网络配置中

但是我应该在哪里添加我上面的网络配置

<?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>
4

1 回答 1

4

您可以在 system.web 元素中添加您的机器密钥。例如

<system.web>
<machineKey validationKey="1234567890123456789012345678901234567890AAAAAAAAAA"
 decryptionKey="123456789012345678901234567890123456789012345678"
 validation="SHA1" decryption="Auto" />
</system.web>

如果您不想在每个应用程序的 web.config 中放置机器密钥,则需要将其放置在每个 .Net Framework 版本的机器级别 web.config 中。

于 2013-07-01T07:06:23.857 回答