enableViewStateMac错误

时间:2014-11-20 23:43:42

标签: asp.net viewstate machinekey

我的网站托管在带有IIS 8.0的Windows 2012 VPS上,它是一个WebFarm群集托管,所以我从我的IIS机器密钥选项生成唯一的机器密钥并将其放到我的web.cofig文件中以避免MAC错误。我的网站运行.Net 4.5框架工作。

以下是我的网络配置详情:

 <system.web>
<compilation debug="true" targetFramework="4.5">
  <assemblies>
    <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
  </assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />   
<pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Auto" enableViewStateMac="true" />
<machineKey decryption="Auto" decryptionKey="9D4BF0A4DB5FD64D08DE303EFBC34DF14069261E34362EE1,IsolateApps" validation="SHA1" validationKey="67BF062C35944A7688EF9270DADD5A6535B6B2D143BCE4C6FD5F814FD1AF84196C5C4E852E204E1A98EDA02DD509964973EE26C7F37D5B018E2AB692A15722EA,IsolateApps" compatibilityMode="Framework45" />
<customErrors mode="Off" defaultRedirect="404.aspx">
  <error statusCode="403" redirect="404.aspx" />
  <error statusCode="404" redirect="404.aspx" />
</customErrors>

但是在运行时它显示错误提及如下: enter image description here

任何人都可以解决这个问题。 感谢

1 个答案:

答案 0 :(得分:2)

如果您使用特定键指定机器密钥,那么您不需要IsolateApps字,它应该是这样的:

<machineKey decryption="Auto"
     decryptionKey="9D4BF0A4DB5FD64D08DE303EFBC34DF14069261E34362EE1" 
     validation="SHA1" 
     validationKey="67BF062C35944A7688EF9270DADD5A6535B6B2D143BCE4C6FD5F814FD1AF84196C5C4E852E204E1A98EDA02DD509964973EE26C7F37D5B018E2AB692A15722EA" 
     compatibilityMode="Framework45" />
如果使用自动生成的密钥,则需要

IsolateApps,这意味着每个应用程序都应具有自己的自动生成密钥。但是在硬编码键的情况下,它没有任何意义,应该删除。