错误消息:此页面的状态信息无效,可能已损坏(无效的视图状态)

时间:2011-06-21 10:59:18

标签: asp.net iis deployment iis-6

我在 IIS6 上有两台服务器,其中负载均衡由负载均衡硬件完成。如果提供了回复Server 1并且回发Server 2处理,那么它总是会出现错误The state information is invalid for this page and might be corrupted,并且在几乎Invalid viewstate下方 每次回发,其他服务器处理请求时。 如果我关闭其中一个服务器,那么它似乎工作正常。

我已检查decryptionKeyvalidationKey在两个服务器部署上都完全相同,并且enableEventValidation="false"enableViewStateMac="false"也是如此。 Google提供的各种解决方案都没有运气:P

请检查下面的exception HiddenFieldPageStatePersister.Load()后面的堆栈跟踪,然后Page.LoadPageStateFromPersistenceMedium()

[ViewStateException: Invalid viewstate. 
    Client IP: 192.168.5.21
    Port: 60042
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
    ViewState: {VIEWSTATE DATA}

[HttpException (0x80004005): The state information is invalid for this page and might be corrupted.]
   System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) +118
   System.Web.UI.ViewStateException.ThrowViewStateError(Exception inner, String persistedState) +13
   System.Web.UI.HiddenFieldPageStatePersister.Load() +222
   System.Web.UI.Page.LoadPageStateFromPersistenceMedium() +107
   System.Web.UI.Page.LoadAllState() +43
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6230
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +247
   System.Web.UI.Page.ProcessRequest() +79
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +23
   System.Web.UI.Page.ProcessRequest(HttpContext context) +111
   OrderJourneyDefault.ProcessRequest(HttpContext context) in C:\inetpub\wwwroot\x\Default.aspx.cs:350
   ASP.toj_application_orderjourney_default_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\82a64fa9\62e4fa0\App_Web_31vcm2al.0.cs:0
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +406
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +76

注意:没有与AJAX / Javascript相关的内容会弄乱我的应用程序。

提前致谢。
穆奈姆

1 个答案:

答案 0 :(得分:0)

查看this post