我发布了以下有关 ASP.NET 网络场的问题。
伙计们建议使用网络负载平衡 (NLB) 作为创建 Web 场的主要方式。
但是,维基百科说“NLBS 旨在用于……无状态应用程序”。然而,我们的 Web 应用程序是绝对“有状态的”:它是一个封闭的站点,用户可以通过登录名和密码访问,每个用户的信息都不同:人们将看到自己的交易和操作。
在这种情况下我们还应该使用 NLB吗?
谢谢你。
我发布了以下有关 ASP.NET 网络场的问题。
伙计们建议使用网络负载平衡 (NLB) 作为创建 Web 场的主要方式。
但是,维基百科说“NLBS 旨在用于……无状态应用程序”。然而,我们的 Web 应用程序是绝对“有状态的”:它是一个封闭的站点,用户可以通过登录名和密码访问,每个用户的信息都不同:人们将看到自己的交易和操作。
在这种情况下我们还应该使用 NLB吗?
谢谢你。
在这种情况下我们还应该使用 NLB 吗?
如果您遵循指南,则看不到为什么不这样做的原因。
Web 应用程序本质上是无状态的,因此即使您的用户应该登录它也不会使应用程序有状态。
结合 ASP.NET 中的有状态的东西是:
可以在 WebFarm 中适当配置。
下面是一个关于如何配置 NLB的示例。
您仍然可以使用 NLB,但您需要一个支持粘性会话的 NLB,这意味着它将始终将来自某个客户端的流量路由到同一 Web 服务器。在负载平衡方面不是最好的解决方案,但至少可以让您扩展到多台服务器。
我认为负载平衡仍然是可取的。您只需要设置它,以便会话是“粘性的”:一旦会话打开:
绝对没错。您可以采用一些策略来维护场中服务器之间的状态。machineKey 设置对于您场中的所有 Web 服务器应该是相同的,以便身份验证票证在机器之间有效。
http://msdn.microsoft.com/en-us/library/ms998288.aspx#paght000007_webfarmdeploymentconsiderations
有几个选项可用于管理 Web 服务器之间的会话状态: