Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net viewstate MAC验证每天失败50次_Asp.net_Validation_Viewstate - Fatal编程技术网

Asp.net viewstate MAC验证每天失败50次

Asp.net viewstate MAC验证每天失败50次,asp.net,validation,viewstate,Asp.net,Validation,Viewstate,好吧,这个话题在互联网上并不新鲜,我明白了。但我还没有找到解决问题的办法 问题是我一直在我的网站上捕捉到这个异常。也许一天50次左右。(stacktrace见下文) viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定了相同的validationKey和验证算法。无法在群集中使用自动生成 我已经在我的web.config文件中预定义了一个machinekey,这一点都没有帮助。 然后我在某个地方读到,我可能是由于加载速度慢而导致的错误,但我正在记录页面加载时间,

好吧,这个话题在互联网上并不新鲜,我明白了。但我还没有找到解决问题的办法

问题是我一直在我的网站上捕捉到这个异常。也许一天50次左右。(stacktrace见下文)

viewstate MAC验证失败。如果此应用程序由Web场或群集托管,请确保配置指定了相同的validationKey和验证算法。无法在群集中使用自动生成

我已经在我的web.config文件中预定义了一个machinekey,这一点都没有帮助。 然后我在某个地方读到,我可能是由于加载速度慢而导致的错误,但我正在记录页面加载时间,当这个错误发生时,没有什么值得警惕的。 一些ppl建议禁用viewstate解密,但正如许多其他ppl所写,这并不是真正的解决方案

有人知道该怎么办吗

堆栈跟踪:

at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
at System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) 
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState) 
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState) 
at System.Web.UI.HiddenFieldPageStatePersister.Load() 
at System.Web.UI.Page.LoadPageStateFromPersistenceMedium()
at System.Web.UI.Page.LoadAllState() 
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.default_aspx.ProcessRequest(HttpContext context) 
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

您需要将机器密钥添加到web.config中

i、 e。


原因是,在web服务器场中,您看到的页面可能是由不同于您回发到的机器提供的,并且viewstate/Cookie等的解密将不匹配,除非服务器场设置的所有者在其服务器场中匹配机器(不太可能)。在单服务器环境中,此密钥是自动生成的,但它并不重要,因为应用程序池始终知道自己的密钥

您需要将机器密钥添加到web.config中

i、 e。


原因是,在web服务器场中,您看到的页面可能是由不同于您回发到的机器提供的,并且viewstate/Cookie等的解密将不匹配,除非服务器场设置的所有者在其服务器场中匹配机器(不太可能)。在单服务器环境中,此密钥是自动生成的,但它并不重要,因为应用程序池始终知道自己的密钥

您是在web场还是群集中运行的?使用多台服务器?您是否尝试捕获失败的viewstate并查看其中的内容?我在本地主机上调试时第一次遇到错误,不知道为什么会这样想,但至少我可以说我的本地主机不在web服务器场上。我还没试过抓住不,但我会调查的!您是否在web场或群集中运行?使用多台服务器?您是否尝试捕获失败的viewstate并查看其中的内容?我在本地主机上调试时第一次遇到错误,不知道为什么会这样想,但至少我可以说我的本地主机不在web服务器场上。我还没试过抓住不,但我会调查的!