Murali Suriar Asked: 2009-06-05 06:32:19 +0800 CST2009-06-05 06:32:19 +0800 CST 2009-06-05 06:32:19 +0800 CST 使用 ASP.NET InProc 会话对 IIS 服务器进行负载平衡 772 有没有人使用 InProc Sessions 在带有 ASP.NET 应用程序的 win 2003 服务器上配置 IIS 6.0 负载平衡。如何做到这一点? windows-server-2003 deployment load-balancing asp.net iis-6 7 个回答 Voted pipTheGeek 2009-06-05T08:47:32+08:002009-06-05T08:47:32+08:00 如果您使用的是作为 Windows Server 2003 的一部分提供的 NLB 集群,那么您正在寻找亲和设置。如果您将此设置为“单一关联”,则来自一个 IP 地址的通信将始终路由到同一服务器,从而允许客户端访问 InProc 会话状态。在http://technet.microsoft.com/en-us/library/bb734858.aspx有一些关于如何设置的文档 jrista 2009-06-05T06:32:20+08:002009-06-05T06:32:20+08:00 我不能说我曾经在不使用负载平衡设备的情况下使用 InProc 会话对 IIS 6 服务器进行负载平衡。如果您不能使用某种分布式缓存,例如 SQL Server 或性能更高的自定义缓存,您可能需要在负载平衡设备中设置某种“粘性会话”路由。这允许您将您的网站外包出去,但是对于每个用户,在他们的会话期间,它们会被重复路由到农场中的同一特定服务器。这允许您使用 InProc 会话,但代价是相对较小,因为没有完美的负载平衡。 注意:您可能会在 StackOverflow 的姊妹网站 www.ServerFault.com 上得到更好的答案。 Peter Mortensen 2009-06-05T06:32:20+08:002009-06-05T06:32:20+08:00 可以根据您的平衡方式来实现。 许多平衡器将允许您指定一个 cookie 作为他们决定在哪里定向坚持会话的方法,但这在很大程度上取决于您使用的硬件/软件平衡器。这是它为你工作的唯一方法。 Ervin Ter 2009-06-05T08:21:40+08:002009-06-05T08:21:40+08:00 InProc 用于单个服务器。 如果您要安装负载均衡器,则需要查看 StateServer 或 SQL Server 数据库。在http://www.codeproject.com/KB/session/ASPNETSession.aspx了解更多信息。 Kb. 2009-06-06T09:39:22+08:002009-06-06T09:39:22+08:00 MSDN Mag 上的这篇题为Build Better Data-Driven Apps With Distributed Caching的文章解释了很多关于如何使用Velocity的内容(目前在社区技术预览中) icelava 2009-07-18T17:48:07+08:002009-07-18T17:48:07+08:00 如果您无法将状态管理整合到 ASP.NET 状态服务或 SQL Server 状态数据库,那么最简单的方法是使用 Windows 的 NLB 配置您的网络场。 http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp Pure.Krome 2009-07-27T20:06:11+08:002009-07-27T20:06:11+08:00 是的 - 我已经使用 IIS6 进行负载平衡。不过,其他人或多或少都回答了这些问题:) 我们在前面有一个硬件负载平衡器。这神奇地确定了要查询的 IIS6 Web 服务器。我们没有使用粘性会话,因此使用 ASP.NET 状态服务器(outproc 会话)来处理我们的会话。我还没有这样做,但就像其他人有建议一样,你需要 InProc 的粘性会话。 我们现在使用的是 IIS7,它仍然可以正常工作。
如果您使用的是作为 Windows Server 2003 的一部分提供的 NLB 集群,那么您正在寻找亲和设置。如果您将此设置为“单一关联”,则来自一个 IP 地址的通信将始终路由到同一服务器,从而允许客户端访问 InProc 会话状态。在http://technet.microsoft.com/en-us/library/bb734858.aspx有一些关于如何设置的文档
我不能说我曾经在不使用负载平衡设备的情况下使用 InProc 会话对 IIS 6 服务器进行负载平衡。如果您不能使用某种分布式缓存,例如 SQL Server 或性能更高的自定义缓存,您可能需要在负载平衡设备中设置某种“粘性会话”路由。这允许您将您的网站外包出去,但是对于每个用户,在他们的会话期间,它们会被重复路由到农场中的同一特定服务器。这允许您使用 InProc 会话,但代价是相对较小,因为没有完美的负载平衡。
注意:您可能会在 StackOverflow 的姊妹网站 www.ServerFault.com 上得到更好的答案。
可以根据您的平衡方式来实现。
许多平衡器将允许您指定一个 cookie 作为他们决定在哪里定向坚持会话的方法,但这在很大程度上取决于您使用的硬件/软件平衡器。这是它为你工作的唯一方法。
如果您要安装负载均衡器,则需要查看 StateServer 或 SQL Server 数据库。在http://www.codeproject.com/KB/session/ASPNETSession.aspx了解更多信息。
MSDN Mag 上的这篇题为Build Better Data-Driven Apps With Distributed Caching的文章解释了很多关于如何使用Velocity的内容(目前在社区技术预览中)
如果您无法将状态管理整合到 ASP.NET 状态服务或 SQL Server 状态数据库,那么最简单的方法是使用 Windows 的 NLB 配置您的网络场。
http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp
是的 - 我已经使用 IIS6 进行负载平衡。不过,其他人或多或少都回答了这些问题:)
我们在前面有一个硬件负载平衡器。这神奇地确定了要查询的 IIS6 Web 服务器。我们没有使用粘性会话,因此使用 ASP.NET 状态服务器(outproc 会话)来处理我们的会话。我还没有这样做,但就像其他人有建议一样,你需要 InProc 的粘性会话。
我们现在使用的是 IIS7,它仍然可以正常工作。