使用viewstate时出错(在群集中?)

时间:2009-11-18 11:04:04

标签: asp.net viewstate

我收到了以下错误,请告诉我为什么会出现此错误

viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保<machineKey>配置指定相同的validationKey和验证算法。 AutoGenerate不能在群集中使用。

2 个答案:

答案 0 :(得分:1)

当您发布同时在服务器上更新的表单,或者该应用程序已在IIS中回收时,就会发生这种情况。

答案 1 :(得分:0)

默认情况下,Viewstate是根据运行Web服务器的计算机的MAC地址生成的 - 这可能会导致Web服务器或集群中的Web流量负载平衡时出现问题,因为页面可能会回发请求可能会由与最初生成视图状态令牌的计算机不同的计算机处理,这将导致您在上面看到的异常。

如果您运行的是Web场/集群,那么答案就是<machineKey>配置元素 - 如果您为每台计算机设置相同的算法/密钥,那么将根据此密钥生成viewstate,而不是机器的MAC地址,防止出现上述问题。

This blog article可能比我刚才解释得更好。