有没有人在使用InProc会话的ASP.NET应用程序的win 2003服务器上configuration了IIS 6.0 loadbalancing。 这怎么能实现?
如果您正在使用作为Windows Server 2003的一部分出货的NLB集群,那么您正在寻找affinty设置。 如果将其设置为“单一affinty”,则来自一个IP地址的通信将始终路由到同一个服务器,从而允许客户端访问InProc会话状态。 有一些关于如何设置它的文档http://technet.microsoft.com/en-us/library/bb734858.aspx
我不能说,我曾经负载均衡的IIS 6服务器与InProc会话,而不使用负载平衡设备。 如果您不能使用某种分布式caching(如SQL Server或更高性能的自定义caching),则可能需要在负载平衡设备中设置某种“粘性会话”路由。 这样,您可以将您的网站划出,但是对于每个用户,在会话期间,它们会反复路由到场中的相同特定服务器。 这使您可以使用InProc会话,但相对较小的代价是没有完美理想的负载平衡。
注意:您可能会在StackOverflow的姊妹站点www.ServerFault.com上得到更好的答案。
这可以根据你如何平衡来实现。
许多平衡器可以让你指定一个cookie作为决定直接粘贴会话的方法,但是它依赖于你正在使用的硬件/软件平衡器。 这是它为你工作的唯一途径。
本文在MSDN上标题为“ 使用分布式caching构build更好的数据驱动的应用程序”解释了很多关于如何使用Velocity (目前在Community Technology Preview中)
如果无法将状态pipe理整合到ASP.NET State服务或SQL Server状态数据库,最简单的方法是使用Windows的NLBconfigurationWeb场。
http://www.west-wind.com/presentations/loadbalancing/networkloadbalancingwindows2003.asp
是的 – 我已经使用IIS6的负载平衡。 其他人或多或less地回答了这些问题:)
我们在前面有一个硬件负载平衡器。 这神奇地确定要查询哪个IIS6 Web服务器。 我们没有使用粘性会话 ,因此使用ASP.NET状态服务器(outproc sessions)来处理会话。 我没有做,但像其他人有build议,你需要粘稠的会议的InProc。
我们现在使用IIS7,它仍然正常工作。
InProc适用于单台服务器。
如果您要负载均衡器,则需要查看StateServer或SQL Server数据库。 在http://www.codeproject.com/KB/session/ASPNETSession.aspx上find更多信息 。