ASP.NET中的Web场

时间:2009-12-07 10:40:29

标签: asp.net web-farm

当我将ASP.NET应用程序部署为Web场时,我需要注意哪些问题?

5 个答案:

答案 0 :(得分:8)

所有会话状态信息都需要在服务器之间进行复制。最简单的方法是使用MSSQL会话状态提供程序。

任何磁盘访问(例如用户存储的动态文件)都需要位于可供所有服务器使用的区域。例如通过使用某种形式的网络附加存储。只需在每台服务器上复制脚本文件,图像和HTML等。

需要检查尝试在应用程序对象中存储任何信息或加载应用程序启动时的信息。每次用户点击服务器场中的新计算机时,都会触发事件。

每个服务器上的机器密钥都是非常大的,正如其他人所建议的那样。如果您对ip地址而不是域使用ssl,也可能会遇到问题。

您必须考虑将要经历的负载均衡策略,因为这可能会改变您的方法。

答案 1 :(得分:6)

会话很重要,请确保使用SQL Server管理会话,并且所有服务器都指向同一个SQL Server实例。

答案 2 :(得分:5)

我遇到过的一个重要问题是不同机器的问题分布在不同的服务器上。 ASP.NET使用machineKey进行各种加密操作,例如ViewState和FormsAuthentication票证。如果你有不同的machineKeys,你可能最终得到的服务器不理解来自其他服务器的回发。如果您想了解更多信息,请查看此处:http://msdn.microsoft.com/en-us/library/ms998288.aspx

答案 3 :(得分:3)

  1. 不要使用会话,而是使用配置文件。您可以配置SQL群集来为它们提供服务。会话将过于频繁地查询会话数据库,而配置文件只是加载自己,就是这样。
  2. 使用像memached这样的分布式缓存商店来缓存数据,使用ASP.Net缓存来获取你需要的东西
  3. 使用SAN或EMC提供静态内容
  4. 使用S3或类似的东西在3上有后备。
  5. 拥有一些不错的负载均衡器,因此您可以轻松更新每台服务器,而无需关闭网站

答案 4 :(得分:1)

HOW TO: Set Up Multi-Server ASP.NET Web Applications and Web Services

日志聚合很容易被忽略 - 在处理HTTP日志之前,您可能需要将它们组合起来创建一个包含发送到服务器的请求的单个日志。