ASP.Net类加载问题

ASP.Net类加载问题,.net,asp.net,classloader,.net,Asp.net,Classloader,1) 在标准.Net应用程序中,类是否按要求加载?(例如,如果我有一个带有静态构造函数的类,那么该静态构造函数是否只在第一次需要该类时运行?) 2) 在ASP.NETMVC(或WebForms)应用程序中,静态构造函数是否在使用它的每个请求上都被调用?还是只针对第一个使用它的请求 3) 通常,ASP.Net应用程序的生存期是多少?每个请求都是单独执行的吗?从一个请求到另一个请求是否有持久化的内容 正如您所看到的,我对.Net运行时何时/如何加载类没有很好的理解,而且我很难清楚地表达正确的Goog

1) 在标准.Net应用程序中,类是否按要求加载?(例如,如果我有一个带有静态构造函数的类,那么该静态构造函数是否只在第一次需要该类时运行?)

2) 在ASP.NETMVC(或WebForms)应用程序中,静态构造函数是否在使用它的每个请求上都被调用?还是只针对第一个使用它的请求

3) 通常,ASP.Net应用程序的生存期是多少?每个请求都是单独执行的吗?从一个请求到另一个请求是否有持久化的内容

正如您所看到的,我对.Net运行时何时/如何加载类没有很好的理解,而且我很难清楚地表达正确的Google查询。如果有人能给我提供关于这个主题的一般性文档,我将不胜感激

  • 在大多数情况下,是的。但是,您无法控制何时执行,除非保证它将在首次使用之前执行,并且它将是线程安全的
  • 否。仅在第一次访问时,每个应用程序域访问一次
  • .Net应用程序的生存期取决于IIS设置和应用程序的稳定性。有一个IIS设置可以强制应用程序回收,这可能会导致应用程序重新启动。当然,应用程序也可能崩溃,例如被非托管库崩溃,这也会导致重新启动

  • 这也可能有用。如果抛出异常而未捕获,会发生什么情况?在典型的.NET应用程序中,异常将终止进程。ASP.NET应用程序通过管道拾取请求,并在不重新启动整个池的情况下处理异常。因此,静态对象将保持其状态。更多关于管道的信息