在IIS应用程序池中,我在进程模型中的最大工作进程中设置了2,应用程序对象,会话对象和缓存对象将由所有工作进程共享,或者所有工作进程将具有不同的应用程序对象,会话对象和缓存宾语。
答案 0 :(得分:2)
如果在proc状态管理中使用,会话将保持在正在运行的进程中。因此,如果您有2个或更多工作进程,那么您的会话只会偶然发挥作用。您可以使用SQL状态管理或状态服务器。 使用状态服务器非常快,但如果状态服务器失败或重新启动,则所有会话都将丢失。使用SQL服务器有点慢,但它有一个好处,即重启或任何中断后会话将全部存在。那么选择什么取决于您的要求。如果您正在运行电子商务网站或类似网站,您可以使用群集和多个网络服务器设置sql server以获得更好的正常运行时间。
至于缓存是一样的,缓存保存在工作进程中。根据缓存中构建对象的成本,您可以使用MemCached或类似的东西。但是,您需要序列化/去除缓存对象并通过线路将它们发送到另一台服务器,这也可能非常昂贵。