ASP.NET会话状态和多个工作进程

Tim*_*ong 23 asp.net asp.net-mvc iis-7 worker-process session-state

我需要了解ASP.NET会话状态,因为它适用于IIS 7和ASP.net 3.5.

如果应用程序配置为使用进程内会话状态,那么如果有多个工作进程,那么它是否正常工作?换句话说,工作进程是否共享会话状态?

IIS 7的默认配置是使用进程内会话状态并分配最多10个工作进程.那么这个默认配置应该可行.我正在与一家公司打交道,该公司已经制作了一个有一些问题的ASP.NET MVC网络应用程序,他们指责服务器环境.声称是因为我使用的是10个工作进程的默认设置,即打破了会话状态.我需要知道这是否真的是一个准确的主张.我从来不知道ASP.NET应用程序不能使用默认配置,所以我有点困惑,需要明确这一点.

Mic*_*lis 26

拥有多个工作进程并使用InProc似乎不兼容.

看到这个:

如果通过在应用程序的Web.config文件的processModel元素中将webGarden属性设置为true来启用Web-garden模式,请不要使用InProc会话状态模式.如果这样做,如果不同的工作进程为同一会话提供不同的请求,则可能会发生数据丢失.


小智 8

不止一个工人流程是"网络花园".进程内会话状态将无法正常工作.您需要为Web应用程序使用单个工作进程,或者使用会话状态服务器或SQL Server进行会话状态.


Mik*_*scu 5

我可能错了,但据我所知,默认情况下,每个应用程序域只有1个工作进程,有多个工作线程来处理请求.在这种情况下,In-Proc会话状态应该可以正常工作(默认设置).

但是,如果您确实有多个工作进程(不仅仅是工作线程,实际工作进程),那么您确实需要进程外会话状态.

我认为在ASP.NET中有多个工作进程被称为web园模式,你必须专门启用它,如果你这样做,那么你需要进行进程状态管理.请参阅此页面上注释框,处于进程内模式标题下.