2014-03-31 59 views
1

我有一个C#ASP.net网站与www.blacknight.com托管。验证视图状态MAC失败。 - ASP.net

有时,当我登录到我的网站,我收到以下错误:

enter image description here

这发生在约1在以往10登录尝试。我联系了他们,他们向我保证,它不在Web Farm或群集上托管,并检查我的ViewState。

有没有人知道这里会出现什么问题?我无法每次都重现它,所以很难追踪到它。

+1

使用Ajax时会发生这种情况。如果没有请在你的web.config文件中添加一个machinekey – glautrou

回答

1

IIS可能会在原始页面加载和登录尝试之间回收您的应用程序吗?如果您未在web.config中指定<machinekey />,则应用程序启动时将生成新的机器密钥。然后,当您尝试验证在回发期间在旧计算机密钥上生成的视图状态时,将抛出此异常。

+0

嗯,我不知道说实话。所以,我应该只加一个,看看是否有效? –

+0

@HarryBoy是的,我会添加一个机器键,看看是否解决了这个问题。 –

+0

好的,我从http://www.eggheadcafe.com/articles/GenerateMachineKey/GenerateMachineKey.aspx生成了一个,并在下添加了它。重新发布并看看它是如何发展的。如果这不正确,请让我知道。 THanks –

2

请参阅知识库文章http://support.microsoft.com/kb/2915218以解决此问题。特别是,您应该在Web.config中设置明确的<machineKey>元素。

该文章的附录A告诉您如何生成<machineKey>元素。

从不设置EnableViewStateMac = false。您应该使用从第三方生成器获得的密钥从不使用。只使用你自己生成的一个。