单击母版页中的链接按钮时出错

时间:2009-04-22 07:56:46

标签: asp.net vb.net

我收到了以下错误。 验证视图状态MAC失败。如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法。 AutoGenerate不能在群集中使用。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Web.HttpException:viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法。无法在群集中使用AutoGenerate。

来源错误:

生成此未处理异常的源代码只能在调试模式下编译时显示。要启用此功能,请按照以下步骤之一,然后请求网址:

  1. 在生成错误的文件顶部添加“Debug = true”指令。例如:
  2.   

    或:

    2)将以下部分添加到应用程序的配置文件中:

                   

    请注意,第二种技术将导致给定应用程序中的所有文件都以调试模式进行编译。第一种技术只会导致在调试模式下编译该特定文件。

    重要:在调试模式下运行应用程序会产生内存/性能开销。在部署到生产方案之前,应确保应用程序已禁用调试。

    堆栈追踪:

    [HttpException(0x80004005):无法验证数据。]    System.Web.Configuration.MachineKeySection.GetDecodedData(Byte [] buf,Byte [] modifier,Int32 start,Int32 length,Int32& dataLength)+2546780    System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)+214

    [ViewStateException:viewstate无效。     客户端IP:127.0.0.1     港口:     User-Agent:Mozilla / 4.0(兼容; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; .NET CLR 2.0.50727)     视图状态:9xQG6dYJ5zq2jCqMiucYRNTojwFlEGYjCH2OQX2PsmFzIZhHtD11AD5JBQmMuoIw105QqG46Ew4o8mVXLBG + T9hl2qqjTTQ / jlivQHaLBjR / cojc5VTk2aZUCmDSZBt / z1yzV8kJLFYrNmIkKAztL + eeZho / zZmCVfRAIcCyhIc =     推荐人:http://localhost:1124/Login/ApproveAppointments.aspx     路径:/ LOGin/ApproveAppointments.aspx]

    [HttpException(0x80004005):viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法。 AutoGenerate不能在群集中使用。]    System.Web.UI.ViewStateException.ThrowError(Exception inner,String persistedState,String errorPageMes​​sage,Boolean macValidationError)+116    System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)+251    System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)+4    System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter,String serializedState)+37    System.Web.UI.HiddenFieldPageStatePersister.Load()+ 220    System.Web.UI.Page.LoadPageStateFromPersistenceMedium()+ 83    System.Web.UI.Page.LoadAllState()+ 35    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+6953    System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+154    System.Web.UI.Page.ProcessRequest()+86    System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)+18    System.Web.UI.Page.ProcessRequest(HttpContext context)+49    ASP.login_approveappointments_aspx.ProcessRequest(HttpContext context)+29    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+154    System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+64

    我尝试了源代码错误中给出的代码。但是无法解决。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:-1)

确保您已将相同的计算机密钥放在群集中所有计算机上的web.configs中,例如

<machineKey validationKey="AAABBBCCCDDD111222333444AAABBBCCCDDD111222333444AAABBBCCCDDD111222333444" decryptionKey="AAABBBCCCDDD111222333444" validation="SHA1"/>