2009-12-10 34 views
0

当我的网页闲置超过5分钟时,会发生以下错误。网页中的状态错误

错误:Sys.WebForms.PageRequestManagerServerErrorException:验证视图状态MAC失败。如果此应用程序由Web Farm或群集托管,请确保配置指定相同的验证密钥和验证算法。 AutoGenerate不能在群集中使用。 源文件:http://www.dial4jobz.com/ScriptResource.axd?d=Xl5p0QQ_qaR3K9bIVhwC3LyqjOX_oAKyeLj_-uS5j1VoFExVtm3XAHiq64EGJt04xntLJvh-9y3pvN3dvKgg5b6sQwkFvX7GT4f0aKn7iyc1&t=73e6f815

多诺,笏是这个错误的原因..我打开一个网页,5分钟后,当我访问它,它显示这种错误..我不' t有任何线索,为什么会出现这种错误.. Plz,给我任何想法?

回答

1

我有同样的问题,这是两个解决方案,我发现,如果你没有使用WebFarm,这可能有助于:

1.禁用ViewState的MAC

在您的网页(的.aspx)@ Page指令可以添加属性EnableViewStateMac="false"。通过这样做将禁用检查,然后问题就会消失。

可惜微软并不建议出于安全考虑,这样做:

This attribute should never be set to false in a production Web site, even if the application or page does not use view state. The view state MAC helps ensure the security of other ASP.NET functions in addition to view state.

来源:Microsoft

2.检查HTML

有在ASP.Net造成的错误在您的<form>标记中设置了“action”属性时发生此问题。例如:

<form runat="server" action="page.aspx"> 

移除此属性,将删除的问题,所以你现在应该有这样的:

<form runat="server"> 

显然,这种解决方案可能会引发其他问题,这取决于你的应用程序。一个大问题是使用Ajax加载页面时。

3.避免ViewStates

在某些情况下使用Ajax时它可能是很容易摆脱ViewStates的。您可以将Ajax请求发送到您的服务器以执行操作,然后显示结果,无需使用ViewState。通过这样做,您不会有关于ViewState验证的问题。

我还发现其他建议those pages可能会帮助你,如果上述说明没有解决您的问题。