ASP.NET应用程序有多个工作进程

4
在IIS应用程序池中,我已经将进程模型中的最大工作进程设置为2。那么应用程序对象、会话对象和缓存对象会被所有工作进程共享,还是所有工作进程都有不同的应用程序对象、会话对象和缓存对象?

可能与此有关,但是你为什么想要两个不同的进程呢? - mpeterson
1个回答

2
如果您使用进程内状态管理,则会话将保留在运行的进程中。因此,如果您有2个或更多工作进程,则会话仅会偶然起作用。您可以使用SQL状态管理或状态服务器。使用状态服务器非常快,但如果状态服务器失败或重新启动,则所有会话都将丢失。使用SQL服务器稍微慢一些,但它的好处是,在重新启动或任何中断后,会话将全部存在。因此,选择哪种方法取决于您的要求。如果您正在运行电子商务网站或类似网站,则可以设置具有群集和多个Web服务器的SQL服务器以获得更高的正常运行时间。
至于缓存,情况也是如此,缓存保存在工作进程中。根据在缓存中构建对象的成本,您可以使用MemCached或类似工具。但是,然后您需要对缓存对象进行序列化/反序列化并将其发送到另一台服务器,这可能也很昂贵。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接