Asp.net viewstate MAC验证失败

Asp.net viewstate MAC验证失败,asp.net,viewstate,Asp.net,Viewstate,未捕获异常:[异常。。。 “'Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: viewstate MAC验证失败。如果 此应用程序由Web服务器托管 场或群集,请确保 配置指定 相同的validationKey和validation 算法。无法使用自动生成 在群集中调用方法时: [nsIDOMEventListener::handle

未捕获异常:[异常。。。 “'Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: viewstate MAC验证失败。如果 此应用程序由Web服务器托管 场或群集,请确保 配置指定 相同的validationKey和validation 算法。无法使用自动生成 在群集中调用方法时: [nsIDOMEventListener::handleEvent]“ nsresult:“0x8057001c (NS\u错误\u XPC\u JS\u抛出的\u JS\u对象) 位置:“JS帧:: chrome://firebug/content/spy.js :: callPageHandler::第744行“数据:否]

问题是,我甚至没有机关枪的标签。我把它注释掉了,我仍然得到这个错误

这是我的整个web.config文件:

<?xml version="1.0"?>

<configuration>
  <configSections>
    <sectionGroup name="UrlRewriter">
      <section name="PlainRules" type="System.Configuration.NameValueSectionHandler"/>
      <section name="RegExRules" type="System.Configuration.NameValueSectionHandler"/>
    </sectionGroup>
  </configSections>

  <UrlRewriter>
    <PlainRules configSource="UrlRewriter.plain.config" />
    <RegExRules configSource="UrlRewriter.regex.config" />
  </UrlRewriter>

  <connectionStrings configSource="db.config"/>

  <system.net>
    <mailSettings>
      <smtp configSource="mail.config"/>
    </mailSettings>
  </system.net>

  <system.web>
    <!--<machineKey validationKey=""
                decryptionKey="" validation="SHA1" />-->

    <compilation debug="true" targetFramework="4.0" />
    <globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8" />
    <trace enabled="false"/>
    <!--<customErrors defaultRedirect="~/error" mode="RemoteOnly"/>-->
    <httpRuntime maxRequestLength="4000" executionTimeout="1000"/>

    <authentication mode="Forms">
      <forms defaultUrl="~/" loginUrl="~/login" timeout="43200" protection="All"  cookieless="UseCookies" />
    </authentication>

    <membership defaultProvider="AspNetSqlMembershipProvider" hashAlgorithmType="SHA1">
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" applicationName="damnation" connectionStringName="membership"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed"
             maxInvalidPasswordAttempts="20" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="5"
        />
      </providers>
    </membership>

    <roleManager defaultProvider="AspNetSqlRoleProvider" enabled="true">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="membership" applicationName="damnation"/>
      </providers>
    </roleManager>

    <profile defaultProvider="AspNetSqlProfileProvider" enabled="true" inherits="Damnation.Website.Shared.Membership.SharedMembershipProfile">
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="membership" applicationName="damnation"/>
      </providers>
    </profile>

    <httpModules>
      <add name="UrlRewriter" type="Damnation.Website.Shared.UrlRewriting.UrlRewriterModule"/>
    </httpModules>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>

    <modules runAllManagedModulesForAllRequests="true">
      <add name="UrlRewriter" type="Damnation.Website.Shared.UrlRewriting.UrlRewriterModule"/>
    </modules>
  </system.webServer>
</configuration>

这里可能有什么问题? 我还应该提到,我尝试过使用和不使用重写器(我自己编写的小模块),所以这也不是问题所在


更新:当我尝试以成员身份登录时,firebug发现了此问题,这会导致updatepanel中的回发。

如果配置中没有machineKey,则使用machine.config中的machineKey


此网站是在web场上设置的吗?如果是这样,您应该生成一个machineKey,并将其放入站点的所有web.config文件安装中。

是否在页面完全呈现之前发回服务器?否,页面已完全加载。您需要添加machineKey,这可能是失败的原因。