加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 网络负载平衡方案的会话状态

发布时间:2020-12-16 09:32:14 所属栏目:asp.Net 来源:网络整理
导读:我们目前为网站设置了当前服务器: 服务器1:管理系统数据库 服务器2:公共站点 服务器3:公共站点 使用Windows网络负载平衡系统管理服务器2和3.它们都运行公共站点代码的副本. 这些网站严重依赖会话,因为他们使用用户登录,我的问题是: 如何在服务器之间保
我们目前为网站设置了当前服务器:

>服务器1:管理系统&数据库
>服务器2:公共站点
>服务器3:公共站点

使用Windows网络负载平衡系统管理服务器2和3.它们都运行公共站点代码的副本.

这些网站严重依赖会话,因为他们使用用户登录,我的问题是:

如何在服务器之间保留状态?

公共站点的web.config目前如下所示:

<sessionState mode="StateServer" cookieless="false" timeout="40" stateConnectionString="tcpip=localhost:42424"/>

当然,这只是将“localhost”更改为我想要存储会话的I.P的情况?我正在考虑使用数据库服务器来存储会话,所以它看起来像这样:

<sessionState mode="StateServer" cookieless="false" timeout="40" stateConnectionString="tcpip=databaseserverIP:42424"/>

这是明智的吗?

我发现了很多关于这个主题的相互矛盾的文档,并希望有人能够深入了解他们之前/将会如何做到这一点.

此外(虽然我在这里!),管理系统允许您上传文章的图像.我正在考虑在服务器2和3上设置一个虚拟目录,这将指向网络共享映射到管理站点上的上传目录,是否有任何理由不赞同这个?

为我的无知道歉,这对我来说是一个未知的领域!

谢谢,肖恩

解决方法

取决于您想要的国家服务.

通常在负载平衡的场景中,您可以使用SQL Server会话或ASP.NET状态服务.

每个都有它的pro / con(SQL Server会话需要序列化/反序列化,但是如果服务器崩溃则保持状态,如果服务器故障转移,ASP.NET状态不会保持状态,但由于没有序列化/反序列化,它会更快).

无论如何,考虑在独立的独立机器上托管服务 – 因此它不会与其他进程争夺资源.

关于这两者的讨论需要您进一步研究 – 就像您的主要关注点是可用性还是速度一样.

请记住,如果要在Web服务器(即webfarm)之间共享会话,则需要将每个服务器的machineKey设置更新为相同.

Here’s一篇关于ASP.NET Session State的好文章(以及我提到的machineKey问题).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读