【发布时间】:2016-06-10 12:36:07
【问题描述】:
当 IIS 接收到 HTTP 请求时,它会将请求移交给应用程序池中的请求应用程序,该应用程序池由一个或多个工作进程提供服务。工作进程将从共享线程池(如果需要)生成一个线程来服务 http 请求。
(i) 在 web api 控制器的上下文中,当收到此请求时,控制器是否被实例化并分配给衍生线程?
(ii) 当对同一个 api 控制器有多个 http 请求时,每个生成的线程是否会有尽可能多的控制器实例?
(iii) 在类级别声明非线程安全资源 (dbContext) 并在构造函数中实例化然后在类方法中使用的场景中。提交和管理事务会不会有问题?
本质上,每个线程是否存在一对一的控制器实例匹配? (我知道使用 asp.net 多个线程实际上可以为单个 http 请求提供服务)。
【问题讨论】:
标签: c# asp.net multithreading iis asp.net-web-api