解析Asp.Net页面执行流程(2)_.Net教程
推荐:如何用.NET读取 Flash格式文件信息一直以来存在这么一个问题,就是当用户上传的Flash文件时都需要附带输入Flash的宽和高,否则显示的时候由于不知道这些数值而导致Flash比例不正常。 近日我做网站也涉及到了这方面的问题
正如2.2中所提到的,这里主要是生成一个HttpApplication对象:
以下为引用的内容: internal static string GetApplicationFile() |
首先会查看是否存在global.asax文件,如果有的话就用它来生成HttpApplication对象,从这里我们可以看到global.asax的文件名是在asp.net的框架中写死的,不能修改的。如果这个文件不存在就使用默认的对象。
创建好HttpApplication之后对它进行初始化:
以下为引用的内容:
application = (HttpApplication) |
四、HttpApplication这个是比较复杂也比较重要的一个对象首先是执行初始化操作,比较重要的一步就是进行HttpModule的初始化:
以下为引用的内容:
private void InitModules() |
程序接着进行事件实际绑定:
if (HttpRuntime.UseIntegratedPipeline)
以下为引用的内容:
{
this._stepManager = new PipelineStepManager(this);
}
else
{
this._stepManager = new ApplicationStepManager(this);
}
this._stepManager.BuildSteps(this._resumeStepsWaitCallback);
在ApplicationStepManager的BuildSteps方法中可以看到事件的绑定执行顺序:
app.CreateEventExecutionSteps(HttpApplication.EventBeginRequest,
steps);
app.CreateEventExecutionSteps(HttpApplication.EventAuthenticateRequest,
steps);
app.CreateEventExecutionSteps(HttpApplication.EventDefaultAuthenticatio
n, steps);
app.CreateEventExecutionSteps(HttpApplication.EventPostAuthenticateRequ
est, steps);
app.CreateEventExecutionSteps(HttpApplication.EventAuthorizeRequest,
steps);
app.CreateEventExecutionSteps(HttpApplication.EventPostAuthorizeRequest
, steps);
app.CreateEventExecutionSteps(HttpApplication.EventResolveRequestCache,
steps);
app.CreateEventExecutionSteps(HttpApplication.EventPostResolveRequestCa
che, steps);
steps.Add(new HttpApplication.MapHandlerExecutionStep(app));
app.CreateEventExecutionSteps(HttpApplication.EventPostMapRequestHandle
r, steps);
app.CreateEventExecutionSteps(HttpApplication.EventAcquireRequestState,
steps);
app.CreateEventExecutionSteps(HttpApplication.EventPostAcquireRequestSt
ate, steps);
app.CreateEventExecutionSteps(HttpApplication.EventPreRequestHandlerExe
cute, steps);
steps.Add(new HttpApplication.CallHandlerExecutionStep(app));
app.CreateEventExecutionSteps(HttpApplication.EventPostRequestHandlerEx
ecute, steps);
app.CreateEventExecutionSteps(HttpApplication.EventReleaseRequestState,
steps);
app.CreateEventExecutionSteps(HttpApplication.EventPostReleaseRequestSt
ate, steps);
steps.Add(new HttpApplication.CallFilterExecutionStep(app));
app.CreateEventExecutionSteps(HttpApplication.EventUpdateRequestCache,
steps);
app.CreateEventExecutionSteps(HttpApplication.EventPostUpdateRequestCac
he, steps);
this._endRequestStepIndex = steps.Count;
app.CreateEventExecutionSteps(HttpApplication.EventEndRequest, steps);
steps.Add(new HttpApplication.NoopExecutionStep());
原文地址:http://bbs.mb5u.com/Design/thread-1167995-1-1.html
分享:解析VC.NET扩展Windows磁盘清理工具的功能摘 要 介绍了Windows磁盘清理工具二次开发的扩展接口,对其COM接口加以分解,并运用ATL库具体实现了清理“*.tmp”临时文件的功能。 关键词 磁盘清理工具、ATL库、COM接口。
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-解析Asp.Net页面执行流程(2)。