处理多个请求需要多少个控制器实例?

时间:2019-10-14 00:49:57

标签: asp.net-mvc asynchronous model-view-controller

我是asp.net mvc的新手。我正在读一本关于同步请求处理的书:

  

该控制器正在Web应用程序服务器中运行,该服务器一次只能处理一个请求,并且如果所有请求都针对相同的操作方法,则处理程序仅在完成处理前一个请求后才开始处理请求,对于   大多数时候,处理程序都闲置着。

我有点困惑,我一直以为Web服务器中的应用程序将创建控制器类的多个实例来处理多个请求,但是似乎一直以来只有一个特定的控制器实例。但是对于应用程序本身来说,调用多个控制器实例来服务多个请求不是更好,那么我们就不会遇到等待问题,甚至不需要使用异步技术了。

1 个答案:

答案 0 :(得分:0)

因此,根据控制器提供的服务的性质,将适当的服务添加到服务集合中,该集合控制跨不同服务请求的控制器实例的行为出价。因此,我们总共可以在以下配置中添加控制器

  1. AddTransient-瞬态对象总是不同;为每个控制器和每个服务提供一个新实例。

  2. AddScoped-作用域对象在一个请求中是相同的,但在不同请求中是不同的。

  3. AddSingleton-每个对象和每个请求的单例对象都是相同的。