ASP.NET 和负载均衡。






4.33/5 (3投票s)
在我们其中的一个项目中,网站的使用率非常高,我们需要将其迁移到负载均衡服务器。我从未配置过负载均衡服务器上的网站。
在我们其中的一个项目中,网站的使用率非常高,我们需要将其迁移到负载均衡服务器。我从未配置过负载均衡服务器上的网站,但这是一个非常有趣的经历。以下是一些在将 asp.net 网站移动到负载均衡环境时需要注意的事项。所以首先我们将看看什么是负载均衡。
以下是来自 Google 的负载均衡定义。
在计算机网络中,负载均衡是一种将工作负载均匀地分配到两个或多个计算机、网络链路、CPU、硬盘驱动器或其他资源上的技术,以便获得最佳的资源利用率,最大化吞吐量,最小化响应时间,并避免过载。
以下是将 asp.net 网站部署到负载均衡服务器环境时需要注意的事项。
所有服务器的机器密钥应相同:视图状态和会话都依赖于机器密钥。如果您的机器密钥不同,那么您将遇到与会话和视图状态相关的问题,您可能会在 post back 期间丢失会话和视图状态。如果机器密钥不同,那么您可能会在 Ajax 请求中得到奇怪的结果。web.config 中有一个 machineKey 节,您可以在其中指定机器密钥。
- <machineKey validationKey='C44B8B7C521CB5BC7E602BAE6118AA44CD690C7304817129DA27C17E800132A
- 1BD946C6D9AD12F0A5B342840C7D130564195428160B7466146938CA9E3A62686' decryptionKey='0E9DF2DA7F210B84087690FF0BF25C905182AD81E16A5FA9' validation='SHA1'/>
<machineKey validationKey='C44B8B7C521CB5BC7E602BAE6118AA44CD690C7304817129DA27C17E800132A1BD946C6D9AD12F0A5B342840C7D130564195428160B7466146938CA9E3A62686' decryptionKey='0E9DF2DA7F210B84087690FF0BF25C905182AD81E16A5FA9' validation='SHA1'/>
会话配置:任何 Web 应用程序都不能没有会话,因为 Web 页面是无状态的,所以您也可以在负载均衡中配置会话。有两种配置可以在负载均衡环境中使用。一种是状态服务,另一种是在 SQL Server 中存储会话。
以下是一个很好的链接,可以学习如何在 asp.net 应用程序中配置会话状态。
这是一个在 SQL Server 上配置会话的好链接。
http://support.microsoft.com/kb/317604
您可以在 web.config 中配置会话状态模式,如下所示。
- <sessionState mode="SQLServer" StateConnectionString="tcpip=127.0.0.1:42424"
- SqlConnectionString = "data source=SERVERNAME; user id=sa; password=sa"
- cookieless="false" timeout="20" />
<sessionState mode="SQLServer" StateConnectionString="tcpip=127.0.0.1:42424" SqlConnectionString = "data source=SERVERNAME; user id=sa; password=sa" cookieless="false" timeout="20" />
m.web>
<pages enableViewStateMac="false" />
</system.web>
Caspol 实用程序:您可以使用 caspol 实用程序在负载均衡服务器之间共享一些资源。例如,在我们的应用程序中,我们有文件基础缓存依赖项,因此我们为两台服务器创建了一个中心位置(缓存文件的共享文件夹),并使用 Caspol 实用程序为负载均衡服务器上的该文件夹提供完全信任共享。以下是一些不错的链接,将教您如何使用 CasPol 实用程序用于 asp.net 应用程序
http://blogs.msdn.com/shawnfa/archive/2004/12/30/344554.aspx
http://forums.asp.net/p/1119925/1881331.aspx#1881331
http://www.eggheadcafe.com/software/aspnet/30227544/caspol-addfulltrust.aspx
文件复制:文件复制也是负载均衡的重要特性,您应该在 Web 应用程序的文件夹上启用复制,这样如果您在一台服务器上上传任何内容,它应该复制到其他站点。以下是了解文件复制的好链接。
http://www.tgrmn.com/web/kb/item28.htm
粘性会话:在某些情况下,粘性会话非常有用。在我们的应用程序中的一个页面中,我们使用了大量的 Ajax,我们需要每个请求和部分 post back 都在一台服务器上保持到请求完成。为了实现这一点,我们可以使用粘性会话。以下是一些了解粘性会话的好链接。
http://blogs.msdn.com/drnick/archive/2007/07/13/sticky-sessions.aspx
希望这对您在负载均衡站点上部署 asp.net 有所帮助。以下是一些更好的链接,可以更详细地了解负载均衡
http://technet.microsoft.com/en-us/library/bb742455.aspx
http://support.microsoft.com/kb/323437
http://technet.microsoft.com/en-us/library/cc754833%28WS.10%29.aspx.
http://edge.technet.com/Media/Network-Load-Balancing-NLB-in-Windows-Server-2008/