2011-06-26 275 views
0

未捕獲的異常:[異常... 「'Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException:視圖狀態MAC的 驗證失敗如果 此應用程序由Web託管 農場或羣集,確保 配置指定 相同的驗證密鑰和驗證 算法。自動生成不能在集羣中使用 '。調用方法時: [nsIDOMEventListener ::的handleEvent] 「 nsresult: 」0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)「 位置:」 JS幀:: 鉻://firebug/content/spy.js :: callPageHandler ::線744 「data:no]驗證失敗

事情是,我甚至沒有machineKey標記。我評論說,我仍然得到這個錯誤。

這是我整個的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> 

可能是什麼問題嗎? 我還應該提到,我嘗試過和沒有重寫器(我自己寫的小模塊),所以這不是問題在這裏...

更新:當我嘗試登錄成員身份時,此問題被螢火蟲,這會在updatepanel中導致回發。

+0

在頁面完全呈現之前,您是否發回服務器? – vcsjones

+0

不,頁面已完全加載。 – bevacqua

+0

你需要添加一個machineKey,可能這就是失敗的原因。 – Aristos

回答

0

如果您的配置中沒有machineKey,則使用machine.config中的machineKey。

此網站是否在網絡農場上安裝?如果是這樣,你應該生成一個machineKey並把它放在你網站的所有web.config文件安裝中。