Asp.net应用程序具有多个工作进程

在IIS应用程序池中,我在进程模型中设置了最大工作进程2,应用程序对象,会话对象和缓存对象将由所有工作进程共享,或者所有工作进程都有不同的应用程序对象,会话对象和缓存对象. 最佳答案 如果在proc状态管理中使用,则会话将保持在正在运行的进程中.因此,如果您有2个或更多工作进程,那么您的会话只会偶然发挥作用.您可以使用SQL状态管理或状态服务器.

使用状态服务器非常快,但如果状态服务器失败或重新启动,则所有会话都将丢失.使用SQL服务器有点慢,但它有一个好处,即重启或任何中断后会话将全部存在.那么选择什么取决于您的要求.如果您正在运行电子商务网站或类似网站,您可以使用群集和多个网络服务器设置sql server以获得更好的正常运行时间.

至于缓存是一样的,缓存保存在工作进程中.根据缓存中构建对象的成本,您可以使用MemCached或类似的东西.但是,您需要序列化/去除缓存对象并通过线路将它们发送到另一台服务器,这也可能非常昂贵.

点赞