ASP.NET操作与分析请求过程是什么
创始人
2024-12-19 02:06:47
0次

  netinfo.exe进程:是www服务的进程,IIS服务和ASPNET_ISAPI.DLL都寄存在此进程中。

  ASPNET_ISAPI.DLL:是处理。aspx文件的win32组件。其实IIS服务器是只能识别。html文件的,当IIS服务器发现被请求的文件是。aspx文件时,IIS服务器将其交给aspnet_isapi.dll来处理。

  aspnet_wp.exe进程:ASP.NET框架进程,提供。net运行的托管环境,。net的CLR(公共语言运行时)就是寄存在此进程中。

  ASP.NETFramework处理一个HttpRequest的流程:

  HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplicationFactory-->HttpApplication-->HttpModule-->HttpHandlerFactory-->HttpHandler-->HttpHandler.ProcessRequest()

  ASP.NET请求处理过程是基于管道模型的,这个管道模型是由多个HttpModule和HttpHandler组成,ASP.NET把http请求依次传递给管道中各个HttpModule,最终被HttpHandler处理,处理完成后,再次经过管道中的HTTP模块,把结果返回给客户端。我们可以在每个HttpModule中都可以干预请求的处理过程。

  注意:在http请求的处理过程中,只能调用一个HttpHandler,但可以调用多个HttpModule。

  当请求到达HttpModule的时候,系统还没有对这个请求真正处理,但是我们可以在这个请求传递到处理中心(HttpHandler)之前附加一些其它信息,或者截获的这个请求并作一些额外的工作,也或者终止请求等。在HttpHandler处理完请求之后,我们可以再在相应的HttpModule中把请求处理的结果进行再次加工返回客户端。

  ASP.NET怎样操作与分析请求过程

  HttpModule

  HTTP模块是实现了System.Web.IhttpModule接口的类。

  IHttpModule接口的声明:

  ?publicinterfaceIHttpModule

  ?{

  ?voidInit(HttpApplicationcontext);

  ?voidDispose();

  ?}

  Init方法:系统初始化的时候自动调用,这个方法允许HTTP模块向HttpApplication对象中的事件注册自己的事件处理程序。

  Dispose方法:这个方法给予HTTP模块在对象被垃圾收集之前执行清理的机会。此方法一般无需编写代码。

  HTTP模块可以向System.Web.HttpApplication对象注册下面一系列事件:

  AcquireRequestState当ASP.NET运行时准备好接收当前HTTP请求的对话状态的时候引发这个事件。

  AuthenticateRequest当ASP.NET运行时准备验证用户身份的时候引发这个事件。

  AuthorizeRequest当ASP.NET运行时准备授权用户访问资源的时候引发这个事件。

  BeginRequest当ASP.NET运行时接收到新的HTTP请求的时候引发这个事件。

  Disposed当ASP.NET完成HTTP请求的处理过程时引发这个事件。

  EndRequest把响应内容发送到客户端之前引发这个事件。

  Error在处理HTTP请求的过程中出现未处理异常的时候引发这个事件。

  PostRequestHandlerExecute在HTTP处理程序结束执行的时候引发这个事件。

  PreRequestHandlerExecute在ASP.NET开始执行HTTP请求的处理程序之前引发这个事件。在这个事件之后,ASP.NET把该请求转发给适当的HTTP处理程序。

  PreSendRequestContent在ASP.NET把响应内容发送到客户端之前引发这个事件。这个事件允许我们在内容到达客户端之前改变响应内容。我们可以使用这个事件给页面输出添加用于所有页面的内容。例如通用菜单、头信息或脚信息。

  PreSendRequestHeaders在ASP.NET把HTTP响应头信息发送给客户端之前引发这个事件。在头信息到达客户端之前,这个事件允许我们改变它的内容。我们可以使用这个事件在头信息中添加cookie和自定义数据。

  ReleaseRequestState当ASP.NET结束所搜有的请求处理程序执行的时候引发这个事件。

  ResolveRequestCache我们引发这个事件来决定是否可以使用从输出缓冲返回的内容来结束请求。这依赖于Web应用程序的输出缓冲时怎样设置的。

  UpdateRequestCache当ASP.NET完成了当前的HTTP请求的处理,并且输出内容已经准备好添加给输出缓冲的时候,引发这个事件。这依赖于Web应用程序的输出缓冲是如何设置的。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...