【问题标题】:Viewstate verification failedViewstate 验证失败
【发布时间】:2014-01-22 19:51:28
【问题描述】:

我知道我为什么会收到此错误并且知道如何解决它,但需要问一些我通过搜索网络无法找到的问题。

我们的应用程序位于 Web Farm 中,并且正在考虑将 validationKey 从 AutoGenerate,IsolateApps 更改为特定的手动生成的键值。

但是,作为示例(我检查了我的本地计算机,而不是实际的服务器 machine.config 文件,因为我无权访问它)。我在本地 machine.config 中看到的只是如下设置:

<section name="machineKey" type="System.Web.Configuration.MachineKeySection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
allowDefinition="MachineToApplication"/>

为了可能更新它,我期待看到如下内容:

<machineKey validationKey="AutoGenerate,IsolateApps"  
            decryptionKey="AutoGenerate,IsolateApps" 
            validation="SHA1" decryption="Auto" />

为什么我在本地机器上没有看到它。或者,如果它在服务器上不同(如上),如果我将设置更改为手动键,是否会影响在 Web Farm 上运行的其他应用程序?如果有,有具体的时间改吗?

如果我选择不这样做,并选择为该应用程序更新 web.config 文件,我需要做的只是简单地更新该应用程序所在的特定 web.config 文件。正确吗?

【问题讨论】:

    标签: asp.net iis web-config viewstate machine.config


    【解决方案1】:

    是的,只需更新特定应用程序的 Web.config,并确保 Web.config 在应用程序文件夹下部署到场中的所有计算机。这不会影响在这些机器上运行的任何其他应用程序。

    如果您在生成 元素时需要帮助,请参阅http://support.microsoft.com/kb/2915218(原因 1 和附录 A)。

    【讨论】:

    • Levi,非常感谢您的回复。我大部分都理解,除了以下摘录:“确保 Web.config 在应用程序文件夹下部署到场中的所有机器”。我假设只是更新该特定应用程序的 web.config 文件并完成它。听起来我需要将 web.config 文件复制到该场中的其他机器。我没有网络农场的经验;只是 InProcess 内存。请原谅我对这个特定主题的无知,但您能否根据这句话进一步说明我需要做什么?
    • 更新应用程序的 Web.config 就像更改应用程序中的任何其他文件(例如 .aspx)一样。您注意到您的应用程序已经部署在一个场中;只需按照您为部署原始应用程序所做的任何步骤操作,Web.config 更改就会自动获取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多