【发布时间】:2011-01-24 17:41:27
【问题描述】:
在 IIS 应用程序池中,我在进程模型的最大工作进程中设置了 2,应用程序对象、会话对象和缓存对象将由所有工作进程共享还是所有工作进程具有不同的应用程序对象、会话对象和缓存目的。
【问题讨论】:
-
它可能相关也可能不相关,但为什么要两个不同的进程?
标签: asp.net
在 IIS 应用程序池中,我在进程模型的最大工作进程中设置了 2,应用程序对象、会话对象和缓存对象将由所有工作进程共享还是所有工作进程具有不同的应用程序对象、会话对象和缓存目的。
【问题讨论】:
标签: asp.net
如果您在 proc 状态管理中使用,则会话将保留在正在运行的进程中。因此,如果您有 2 个或更多工作进程,则您的会话只会偶然工作。您可以使用 SQL 状态管理或状态服务器。 使用状态服务器非常快,但如果状态服务器失败或重新启动,所有会话都将丢失。使用 SQL Server 会稍微慢一些,但它的好处是会话将在重新启动或任何类型的中断后全部存在。所以选择什么取决于你的要求。如果您正在运行电子商务网站或类似网站,您可以设置带有集群和多个网络服务器的 sql 服务器,以获得更好的正常运行时间。
缓存也是一样,缓存是保存在worker进程中的。根据在缓存中构建对象的成本,您可以使用 MemCached 或类似的东西。但是随后您需要对缓存对象进行序列化/反序列化并将它们通过网络发送到另一台服务器,这也可能非常昂贵。
【讨论】: