[英]Asp.net application life cycle
这个问题可能听起来很傻,但我从来没有在任何地方得到明确的答案。 我试图弄清楚 asp.net 应用程序实际上是如何工作的,在 Windows 应用程序 (.net) 中,当应用程序部署在一台或多台 PC 上时,如果用户再次使用,则用户可以单击打开该应用程序并创建该应用程序的实例打开应用程序然后创建另一个实例(打开多个 excel 文件可能是一个例子)。 但是在 web 上,由于应用程序部署在 web 服务器上,并且可能有多个用户请求同一个应用程序,所以是否有一种机制可以为每个唯一的浏览器请求创建一个 asp.net web 应用程序的实例? 换句话说,如果 A 和 B 是两个用户并访问同一个应用程序,那么是否在 Web 服务器上创建了两个实例(inst A,inst B)来处理请求?
Asp.net 连同 Web 服务器和操作系统使用线程来处理每个请求。 线程与您为单独的 Excel 实例描述的进程非常相似。 线程允许 Web 服务器独立处理每个用户会话。
Webapplication 本身有一个实例。 每个请求由不同的线程处理。 每个请求都通过应用程序管道(旧的 ASP.NET 不同,ASP.NET Core 不同),在最常见的情况下,它会创建负责处理请求的类的新实例(通常是控制器)。 Rest 在作用域中定义(因此,如果您的某些类是单例或有限实例,或者您使用具有定义作用域的 IoC 容器),那么它们可以在不同请求之间共享实例。
基本上你看不到的是框架提供的主循环函数,它处理所有请求,创建类实例并将控制权传递给你的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.