【问题标题】:how many instances of controller it takes to handle multiple requests?处理多个请求需要多少个控制器实例?
【发布时间】:2019-10-14 09:19:17
【问题描述】:

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

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

我有点迷茫,我一直认为 Web 服务器中的应用程序会创建多个控制器类实例来服务多个请求,但似乎始终只有一个特定的控制器实例。但是应用程序本身调用多个控制器实例来服务多个请求不是更好吗,这样我们就不会有等待问题,甚至不需要使用异步技术?

【问题讨论】:

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


    【解决方案1】:

    因此,根据控制器提供的服务的性质,将适当的服务添加到服务集合中,该集合管理控制器实例在不同服务请求中的行为。所以总而言之,我们可以在以下配置中添加一个控制器

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

    2. AddScoped - 范围对象在请求中相同,但在不同请求中不同。

    3. AddSingleton - 对于每个对象和每个请求,Singleton 对象都是相同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 2012-03-06
      • 2021-06-03
      • 1970-01-01
      • 2017-03-22
      相关资源
      最近更新 更多