c# – ASP.NET单工线程? (在内存会话中)

我在ASP.NET MVC应用程序的内存会话中使用,这意味着我只能有一个单独的工作线程正确吗?这是否意味着我在我的应用程序中进行并行处理(想想并发请求)?我的申请一次只接受1个请求吗?

编辑:根据IIS7网站:

If the application uses in-process session variables, 
the application will not function correctly, because the same user requests 
are picked up by different worker processes that 
do not share the same session details.

那么这意味着内存中的会话只能有1个工作线程吗?另请参阅IIS7论坛中的here.

最佳答案 您的应用程序一次收到多个请求.根据您的编辑和评论,您正在寻找有关Web Gardens和会话的信息,而不是线程和会话状态.

Web Gardens使用多个进程,在会话状态方面就像负载均衡器一样.每个进程都有一个单独的内存会话存储. IIS将向任何可用进程发送请求.由于进程不共享会话状态,因此只有在所有Web园进程之间共享会话提供程序时,会话使用才会真正起作用.

Web Gardens只有在使用类似SQL Server的会话状态时才有意义,并希望与特定的CPU /核心具有亲缘关系.由于您可以增加线程数,因此对于某些用户而言,这可能比使用Web园更合适.然而,由于特定的工作负荷或应用特性,一些应用可能在网络花园中表现更好.在测试中使用网络花园也可以帮助解决负载平衡下存在的一些潜在问题.

我相信它使用.NET ThreadPool并且默认有20个线程.进入服务器的每个请求可以在单独的线程上处理. ASP.NET performance guidelines有关于此主题的一些信息.

点赞