使用IIS和ASP .Net进行负载平衡

时间:2011-01-11 17:00:43

标签: asp.net iis load-balancing

问候,

在编写ASP .Net网站时,如果应用程序将在有IIS负载均衡器的环境中运行,我需要考虑什么?

所有用户会话都由他们自己运行,会话之间没有共享数据。与MSSQL的单一连接。用于下载的图像和文件将托管在一台服务器上。

Windows Server 2008,C#和.Net 4.0。

2 个答案:

答案 0 :(得分:7)

最明显的项目是会话状态。如果您负载均衡,则来自同一用户的多个请求可能会在服务器之间移动。 ASP.NET(进程内)的默认会话提供程序不支持此操作(用户每次移动时都会获得一个新会话)。最简单的解决方案是转移到ASP.NET状态服务器或SQL Server会话。

仅供参考:这两种解决方案都要求您在Session中输入的所有内容都是[Serializable]。进程内提供程序没有此要求,因此您可能会看到一些运行时错误,并且需要在更改提供程序时修改代码。

答案 1 :(得分:0)

您需要将会话状态移动到会话状态服务中。避免将对象保留在会话中...如果必须在会话中保留对象,请确保它标记为Serializable属性(这是通过序列化存储的方式)。

通常,请避免使用会话。请记住,ASP.Net Session!= FormAuthentication。有可能您的数据库早在Web服务器之前就会成为瓶颈,具体取决于应用程序的性质。