Asp.net应用程序生命周期

时间:2018-10-02 21:52:52

标签: c# asp.net iis

这个问题听起来很愚蠢,但是我在任何地方都没有明确的答案。我试图弄清楚asp.net应用程序是如何工作的,在Windows应用程序(.net)中,当将应用程序部署在一台或多台PC上时,用户可以单击打开该应用程序,并创建该应用程序的实例,如果再次使用打开应用程序,然后创建另一个实例(打开多个excel文件可能是一个示例)。但是在Web上,由于该应用程序已部署在Web服务器上,并且可能有多个用户在请求同一个应用程序,因此是否有一种机制可以为每个唯一的浏览器请求创建一个asp.net Web应用程序实例?换句话说,如果A和B是两个用户,并且访问同一个应用程序,那么是否在Web服务器上创建了两个实例(实例A,实例B)来处理请求?

2 个答案:

答案 0 :(得分:0)

Asp.net与Web服务器和操作系统一起使用线程来处理每个请求。线程与您为单独的Excel实例描述的过程几乎相同。这些线程允许Web服务器独立处理每个用户会话。

答案 1 :(得分:0)

Web应用程序本身具有一个实例。每个请求由不同的线程处理。每个请求都经过应用程序管道(与旧的ASP.NET不同,与ASP.NET Core不同),在最常见的情况下,该管道创建负责处理请求的类的新实例(通常是控制器)。其余部分在范围内定义(因此,如果您的某些类是单例或受限实例,或者您使用具有定义范围的IoC容器),则它们可以在不同请求之间共享实例。

基本上看不到框架提供的主循环功能,该功能处理所有请求,创建类实例并将控制权传递给代码。