科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道有关于WEB负载均衡的问题

有关于WEB负载均衡的问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在win2003系统下的web负载均衡配置我们已经说过很多了,也有不少文章是介绍这方面的知识。后来,笔者在学习过程中,发现了这篇文章,在此分享给大家,希望能帮助大家解决一些操作上面的疑惑。

来源:ZDNet网络频道 2010年5月7日

关键字: 网络 负载均衡

  • 评论
  • 分享微博
  • 分享邮件

在win2003系统下的web负载均衡配置我们已经说过很多了,也有不少文章是介绍这方面的知识。但是,真正实际操作起来也并不是那么容易,有时候会出现一些问题。后来,笔者在学习过程中,发现了这篇文章,在此分享给大家,希望能帮助大家解决一些操作上面的疑惑。

环境说明:

开发平台是DOTNET B/S .NET Framework 1.1

正式WEB服务器和测试机,均为win2003

原有一个主网站,在六台WEB服务器做负载均衡?运行比较稳定?

现新开发一个子站,将布署在另三台WEB服务器上做负载均衡?这个负载均衡设置类似主网站的设置?

解决步骤:

1)子站在测试机测试通过,运行正常?准备布署到正式环境下(三台WEB服务器)

2)将子站程序拷贝到那三台WEB服务器上,配置好子站相关配置,开放站点与负载均衡开始测试?

3)测试时,页面显示正常,但在触发服务端事件时出现异常?

错误信息“Viewstate is invalid for this page"(此页的视图状态无效)没有为解决此问题提供足够信息

同样的程序为何在测试机运行没问题,放到正式环境下,就出现异常呢?

在微软网站要查到这个异常的解释(http://support.microsoft.com/default.aspx?scid=kb;zh- cn;831150),说建议安装Microsoft .NET Framework 1.1 Service Pack 1?

于是,怀疑没有装这个补丁,就查看注册表项:

项名称:HKEY_LOCAL_MACHINESoftwareMicrosoftNET Framework SetupNDPv1.1.4322

SP值为0,表明没有装Framework 1.1 Service Pack,然后去微软网站下载了.NET Framework 1.1 Service Pack 1和.NET Framework 1.1 Service Pack 1 ASP.NET 安全更新 - Windows Server 2003

4)装上这两个补丁后,运行子站程序,在触发服务端事件时仍旧出现异常?异常如下:

异常详细信息:System.Web.HttpException: 无法验证数据?

堆栈跟踪:

以下为引用的内容:

[HttpException (0x80004005): 无法验证数据?

[HttpException (0x80004005): Authentication of viewstate failed. 1) If this is a cluster, edit configuration so all servers use the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. 2) Viewstate can only be posted back to the same page. 3) The viewstate for this page might be corrupted.]

“应用此修复程序后,视图状态错误信息标题将变成“Unable to Validate Data"?尽管新的错误信息格式没有对问题进行具体描述,但它比以前的错误信息格式提供了更多信息?"

得知应该是ViewState值已被截断?!

问题就转化:什么原因导致"ViewState值已被截断"呢?

因为程序在测试环境下运行没问题的,那么可能是系统级的问题?

比较一下正式和测试环境:正式环境是三台Server做负载均衡,而测试环境只一台Server?

5)将负载均衡设置修改了一下,只开放一台WEB Server?测试后,发现不出现那个异常?三台机分别测试,均无异常?

推测:可能是负载均衡设置有问题?于是找来系统管理员,他说,子站的负载均衡设置跟主站一样的啊?但还是请他再确认一下两个负载均衡设置的不同之处?

经再次的仔细检查,发现负载均衡Pool的Persistence Type(进程延续)为None,也就是说服务端不保持连接状态?这样,每次服务端事件被触发时,就会导致"ViewState值已被截断"?于是将 Persistence Type(进程延续)的值改为Simple,Timeout设为600秒?

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章