У меня есть два сервера на IIS6 , где балансировка нагрузки выполняется оборудованием балансировки нагрузки. Когда предоставляется ответ Server 1
и обратная передача обрабатывается Server 2
, он всегда получает ошибку The state information is invalid for this page and might be corrupted
и под Invalid viewstate
на почти каждый обратная передача когда запросы обрабатываются альтернативными серверами. Если я выключу один из серверов, значит, он работает нормально.
Я проверил, что decryptionKey
и validationKey
оба точно одинаковы на обоих серверах, а также 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, чтобы испортить мое приложение.
Заранее спасибо.
Мунит