zoukankan      html  css  js  c++  java
  • IIS5和IIS6的Asp.net应用程序生命周期事件和Global.asax文件

    学习于:http://msdn.microsoft.com/zh-cn/library/ms178473(v=vs.100).aspx

    1. Asp.net应用程序生命周期事件和Global.asax文件

    在应用程序的生命周期期间,应用程序会引发可处理的事件并调用可重写的特定方法。若要处理应用程序事件或方法,可以在应用程序根目录中创建一个名为 Global.asax 的文件。

    如果创建了Global.asax文件,ASP.NET会将其编译为从HttpApplication类派生的类,然后使用该派生类表示应用程序。

    public class Global : System.Web.HttpApplication
    {
        //...
    }


    通过使用命名约定Application_event(如 Application_BeginRequest),ASP.NET可在Global.asax文件中将应用程序事件自动绑定到处理程序。其实Global.asax类中的这些事件都是HttpModule事件。有时,可能Global.asax中的事件不是我们想要的,那么我们可以创建一个IHttpModule接口的实现类,并在该类中将自己的功能代码通过以HttpModule的方式注入到HttpApplication相应的事件上,最后在Web.config文件中作配置即可

    HttpApplication进程的一个实例每次只处理一个请求,

    Application_Start  和 Application_End 方法同 HttpApplication其他事件不同,在应用程序域的整个生命周期期间,ASP.NET仅调用这两个方法一次,而不是对每个HttpApplication实例都调用一次,也就是说在应用程序域的整个生命周期期间,会有多个HttpApplication实例,且HttpApplication实例是可以重用的,当HttpRuntime不能从HttpApplicationFactory获取空闲的实例时,才会去新建该实例

    下表列出在应用程序生命周期期间使用的一些事件和方法。实际远不止列出的这些事件,但这些事件是最常用的。

    2. 编译生命周期

    在第一次对应用程序发出请求时,ASP.NET按特定顺序编译应用程序项。要编译的第一批项称为顶级项。在第一次请求之后,仅当依赖项更改时才会重新编译顶级项。下表描述编译 ASP.NET 顶级项的顺序。

    在编译应用程序的顶级项之后,ASP.NET 将根据需要编译文件夹、页和其他项。下表描述编译 ASP.NET 文件夹和项的顺序。

    编译后的程序集缓存在服务器上并在后续请求时被重用,并且只要源代码未更改,就会在应用程序重新启动之间得到保留。
    由于应用程序在第一次请求时进行编译,所以对应用程序的初始请求所花的时间会明显长于后续请求。可以预编译应用程序以减少第一次请求所需的时间。

  • 相关阅读:
    java调用打印机方式二
    java调用系统打印机
    Centos7开放端口(永久)
    java毫秒级别定时器
    java计算接口调用时间
    java实现当前时间往前推N小时
    java注解日志记录到数据库
    Java后端HttpClient Post提交文件流 及服务端接收文件流
    springboot整合websocket
    注解@Slf4j使用
  • 原文地址:https://www.cnblogs.com/notebook2011/p/2888272.html
Copyright © 2011-2022 走看看