1 public class MvcApplication : System.Web.HttpApplication
2 {
3 protected void Application_Start(object sender, EventArgs e)
4 {
5 //不是每次请求都调用
6 //在Web应用程序的生命周期里就执行一次
7 //在应用程序第一次启动和应用程序域创建事被调用
8 //适合处理应用程序范围的初始化代码
9 }
10
11 void Application_End(object sender, EventArgs e)
12 {
13 //不是每次请求都调用
14 //在应用程序关闭时运行的代码,在最后一个HttpApplication销毁之后执行
15 //比如IIS重启,文件更新,进程回收导致应用程序转换到另一个应用程序域
16 }
17
18 void Session_Start(object sender, EventArgs e)
19 {
20 //不是每次请求都调用
21 //会话开始时执行
22 }
23
24 void Session_End(object sender, EventArgs e)
25 {
26 //不是每次请求都调用
27 //会话结束或过期时执行
28 //不管在代码中显式的清空Session或者Session超时自动过期,此方法都将被调用
29 }
30
31 void Application_Init(object sender, EventArgs e)
32 {
33 //不是每次请求都调用
34 //在每一个HttpApplication实例初始化的时候执行
35 }
36
37 void Application_Disposed(object sender, EventArgs e)
38 {
39 //不是每次请求都调用
40 //在应用程序被关闭一段时间之后,在.net垃圾回收器准备回收它占用的内存的时候被调用。
41 //在每一个HttpApplication实例被销毁之前执行
42 }
43
44 void Application_Error(object sender, EventArgs e)
45 {
46 //不是每次请求都调用
47 //所有没有处理的错误都会导致这个方法的执行
48 }
49
50
51 /*********************************************************************/
52 //每次请求都会按照顺序执行以下事件
53 /*********************************************************************/
54
55 void Application_BeginRequest(object sender, EventArgs e)
56 {
57 //每次请求时第一个出发的事件,这个方法第一个执行
58 }
59
60 void Application_AuthenticateRequest(object sender, EventArgs e)
61 {
62 //在执行验证前发生,这是创建验证逻辑的起点
63 }
64
65 void Application_AuthorizeRequest(object sender, EventArgs e)
66 {
67 //当安全模块已经验证了当前用户的授权时执行
68 }
69
70 void Application_ResolveRequestCache(object sender, EventArgs e)
71 {
72 //当ASP.NET完成授权事件以使缓存模块从缓存中为请求提供服务时发生,从而跳过处理程序(页面或者是WebService)的执行。
73 //这样做可以改善网站的性能,这个事件还可以用来判断正文是不是从Cache中得到的。
74 }
75
76 //------------------------------------------------------------------------
77 //在这个时候,请求将被转交给合适程序。例如:web窗体将被编译并完成实例化
78 //------------------------------------------------------------------------
79
80 void Application_AcquireRequestState(object sender, EventArgs e)
81 {
82 //读取了Session所需的特定信息并且在把这些信息填充到Session之前执行
83 }
84
85 void Application_PreRequestHandlerExecute(object sender, EventArgs e)
86 {
87 //在合适的处理程序执行请求前调用
88 //这个时候,Session就可以用了
89 }
90
91 //-------------------------------------------------
92 //在这个时候,页面代码将会被执行,页面呈现为HTML
93 //-------------------------------------------------
94
95 void Application_PostRequestHandlerExecute(object sender, EventArgs e)
96 {
97 //当处理程序完成对请求的处理后被调用。
98 }
99
100 void Application_ReleaseRequestState(object sender, EventArgs e)
101 {
102 //释放请求状态
103 }
104
105 void Application_UpdateRequestCache(object sender, EventArgs e)
106 {
107 //为了后续的请求,更新响应缓存时被调用
108 }
109
110 void Application_EndRequest(object sender, EventArgs e)
111 {
112 //EndRequest是在响应Request时最后一个触发的事件
113 //但在对象被释放或者从新建立以前,适合在这个时候清理代码
114 }
115
116 void Application_PreSendRequestHeaders(object sender, EventArgs e)
117 {
118 //向客户端发送Http标头之前被调用
119 }
120
121 void Application_PreSendRequestContent(object sender, EventArgs e)
122 {
123 //向客户端发送Http正文之前被调用
124 }
125 }