如何确定asp.net请求生命周期的当前处理事件
1 首先在全局应用程序里面添加如下代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState; namespace Events
{
public class Global : System.Web.HttpApplication
{ public Global()
{
BeginRequest += HandleEvent;
EndRequest += HandleEvent;
AcquireRequestState += HandleEvent;
PostAcquireRequestState += HandleEvent;
} private void HandleEvent(object sender, EventArgs e)
{
//httpContext类用于访问所有有关应用程序,所处理的请求以及正在构建的请求的信息,并且它的属性currentNotification定义了HttpApplication
事件的子集
string eventName = "<Unknown>";
switch (Context.CurrentNotification)
{
case RequestNotification.BeginRequest:
case RequestNotification.EndRequest:
eventName = Context.CurrentNotification.ToString();
break;
case RequestNotification.AuthenticateRequest:
break;
case RequestNotification.AuthorizeRequest:
break;
case RequestNotification.ResolveRequestCache:
break;
case RequestNotification.MapRequestHandler:
break;
//当asp.net fromework需要与请求关联的状态时,将触发改事件
case RequestNotification.AcquireRequestState:
if (Context.IsPostNotification)
{
eventName = "PostAcquireRequestState";
}
else
{
eventName = "AcquireRequestState";
}
break;
case RequestNotification.PreExecuteRequestHandler:
break;
case RequestNotification.ExecuteRequestHandler:
break;
case RequestNotification.ReleaseRequestState:
break;
case RequestNotification.UpdateRequestCache:
break;
case RequestNotification.LogRequest:
break;
case RequestNotification.SendResponse:
break;
default:
break;
}
EventCollection.Add(EventSource.Application, eventName);
} protected void Application_Start(object sender, EventArgs e)
{
EventCollection.Add(EventSource.Application, "Start");
Application["message"] = "Aplication Events";
} protected void Session_Start(object sender, EventArgs e)
{ } protected void Application_BeginRequest(object sender, EventArgs e)
{
//收到请求时触发的第一个事件
EventCollection.Add(EventSource.Application, "BeginRequest");
Response.Write(string.Format("request started at {0}", DateTime.Now.ToLongTimeString()));
} protected void Application_EndRequest(object sender,EventArgs e)
{
EventCollection.Add(EventSource.Application, "EndRequest");
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{ } protected void Application_Error(object sender, EventArgs e)
{ } protected void Session_End(object sender, EventArgs e)
{ } protected void Application_End(object sender, EventArgs e)
{
EventCollection.Add(EventSource.Application,"End");
} }
}
如何确定asp.net请求生命周期的当前处理事件的更多相关文章
- [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(二)
ASP.NET 请求生命周期 全局应用类也可以用来跟踪每个独立请求的生命周期,包括请求从 ASP.NET 平台传递到 MVC 框架.ASP.NET 框架会创建一个定义在 Global.asax 文件中 ...
- [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(四)
不使用特殊方法来处理请求生命周期事件 HttpApplication 类是全局应用类的基类,定义了可以直接使用的一般 C# 事件.那么使用标准 C# 事件还是特殊方法那就是个人偏好的问题了,如果喜欢, ...
- [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(三)
使用特殊方法处理请求生命周期事件 为了在全局应用类中处理这些事件,我们会创建一个名称以 Application_ 开头,以事件名称结尾的方法,比如 Application_BeginRequest.举 ...
- 详解ASP.NET MVC的请求生命周期
本文的目的旨在详细描述asp.net mvc请求从开始到结束的每一个过程. 我希望能理解在浏览器输入url并敲击回车来请求一个asp.net mvc网站的页面之后发生的任何事情. 为什么需要关心这些? ...
- ASP.NET MVC的请求生命周期
我希望能理解在浏览器输入URL并敲击回车来请求一个ASP.NET MVC网站的页面之后发生的任何事情. 为什么需要关心这些?有两个原因.首先是因为ASP.NET MVC是一个扩展性非常强的框架.例如, ...
- 详解ASP.NET MVC应用程序请求生命周期
------转载当一个ASP.NET MVC应用程序提出请求,为了响应请求,包含一些请求执行流程步骤! 在ASP.NET MVC应用程序Http request 和Http response 过程中, ...
- Asp.net页面生命周期详解任我行(3)-服务器处理请求详细过程
前言 百度了一下才知道,传智的邹老师桃李满天下呀,我也是邹老师的粉丝,最开始学习页面生命周期的时候也是看了邹老师的视频. 本人是参考了以下前辈的作品,本文中也参合了本人心得,绝非有意盗版,旨在传播,最 ...
- C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)
本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...
- ASP.net 页面生命周期
ASP.NET 页面生命周期 Page_Preinit(); 在页初始化开始时发生 Page_Init(); 在所有控件初始化且应用外观设置后引发 Page_InitComplete(); 在页初始化 ...
随机推荐
- SQL-W3School-基础:SQL ORDER BY 子句
ylbtech-SQL-W3School-基础:SQL ORDER BY 子句 1.返回顶部 1. ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据 ...
- PostgreSQL 之 CREATE FUNCTION
官方文档 语法: CREATE [ OR REPLACE ] FUNCTION name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } d ...
- Python升级提示Tkinter模块找不到的解决方法
一.安装tkinter在Linux中python默认是不安装Tkinter模块,复制代码 代码如下:[root@li250-193 ~]# pythonPython 2.6.6 (r266:84292 ...
- vs 扩展和更新下载的插件在什么位置呢,看看吧,哈哈
C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\10.0\Extensions,注意哈,这个AppData是隐藏的哟,要显示才能 ...
- 驱动备份还原命令——驅動備份還原命令——Driver Backup/Restore
以管理員身份啓動命令提示符,輸入以下命令: 1.驅動備份(备份Backup)命令: Dism /online /export-driver /destionation:D:\DriverBackup ...
- Mac下Unity使用Jenkins自动化打包
重要的事情说三遍:不要使用jenkins dmg安装包直接安装,用brew安装 PS:会有权限问题 重要的事情说三遍:不要使用jenkins dmg安装包直接安装,用brew安装 重要的事情说三遍: ...
- docker教程(1) - 快速使用
docker 笔记(1) --docker安装.获取镜像.启动容器.删除容器 一.安装 Docker 官方文档 根据官方文档整理简单流程 从Docker Hub下载mac包 运行磁盘镜像,将Docke ...
- linux 抓包工具tcpdump和tshark
yum install tcpdump tcpdump -nn -c 100 抓一百条 tcpdump -nn -i eth0 指定网卡 tcpdump -nn port 22 指定端口 tcpdum ...
- 环境变量配置文件profile
环境变量配置文件 在Ubuntu中有如下几个文件可以设置环境变量1./etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时, ...
- [OpenCV] 图像亮度和对比度调整
对比度调整的原理参考这篇博客 以下是代码实现: #include <iostream> #include "opencv2/core.hpp" #include &qu ...