ASP.NET Web Farm具有4.0和4.5.1会导致无效的后备或回调参数异常



我有一个网站,该网站在负载平衡器后面的网络农场中运行。我在每个服务器上的每个web.config文件中都有一个一致的<machineKey />元素。直到最近,所有服务器都运行.NET 4.0(未安装.NET 4.5)。今天早上,我向农场介绍了一台新服务器,该农场运行的代码和配置与现有服务器完全相同,但已安装了.NET 4.5.1。

我正在使用以下内容将所有服务器上的目标.NET 4.0

<compilation targetFramework="4.0">

和类似的MachineKey元素(为安全性删除了键值):

<system.web>
    <machineKey decryptionKey="..." validationKey="..." />
</system.web>

.NET 4.0处理验证或加密/解密的方式与.NET 4.5.1不同,即使目标帧为4.0?

网络农场中的每台机器都必须安装了完全相同的ASP.NET版本。不支持在农场中运行4.0和4.5.1。

也就是说,有两种方法可以执行升级:

  1. 将农场离线的一半升级,将离线机器升级到4.5.1,然后同时将这些机器带回农场,同时将剩余的一半离线升级。然后更新其余的离线机,然后将它们带回。

  2. 如果您绝对需要执行就地升级,请设置&lt; appSettings&gt;switch aspnet:uselegacyeventValidationCompatibility to web.config(请参阅MSDN),然后一一将您的计算机升级到4.5.1。这不是支持的配置,但应该起作用。命令您不保留此&lt; appSettings&gt;切换任意时间,因此请确保将其从web.config中删除。升级完成后。

最新更新