使用 ASP.NET InProc 会话实现 IIS 服务器负载平衡

使用 ASP.NET InProc 会话实现 IIS 服务器负载平衡

是否有人使用 InProc Sessions 在装有 ASP.NET 应用程序的 Win 2003 服务器上配置了 IIS 6.0 负载平衡。如何实现?

答案1

如果您使用的是 Windows Server 2003 附带的 NLB 群集,那么您正在寻找关联性设置。如果您将其设置为“单关联性”,则来自一个 IP 地址的通信将始终路由到同一服务器,从而允许客户端访问 InProc 会话状态。有关如何设置它的文档,请访问http://technet.microsoft.com/en-us/library/bb734858.aspx

答案2

我不能说我曾经不使用负载平衡设备就使用 InProc 会话对 IIS 6 服务器进行负载平衡。如果您不能使用某种分布式缓存(例如 SQL Server 或性能更高的自定义缓存),则可能需要在负载平衡设备中设置某种“粘性会话”路由。这允许您将网站分散出去,但对于每个用户,在他们的会话期间,他们会被重复路由到场中的同一台特定服务器。这允许您使用 InProc 会话,但代价相对较小,即无法实现完美的负载平衡。

注意:您可能会在 StackOverflow 的姊妹网站 www.ServerFault.com 上找到此类问题的更好的答案。

答案3

这可以根据您的平衡方式来实现。

许多平衡器允许您指定 cookie 作为其决定将会话引导至何处的方法,但这在很大程度上取决于您使用的硬件/软件平衡器。这是它对您起作用的唯一方法。

答案4

如果您无法将状态管理合并到 ASP.NET 状态服务或 SQL Server 状态数据库,那么最简单的方法就是使用 Windows 的 NLB 配置您的 Web 场。

http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp

相关内容