浅谈asp.net运行机制

ycmail ycmail     2022-12-04     706

关键词:

一、Asp.net 运行机制概述

1.使用Asp.net 进行动态Web开发,编写好Web应用程序,即动态页面,并部署到Web服务器,如IIS中;

2.客户端在浏览器输入地址,请求相应的动态页面;

3.Web 服务器根据客户端的请求,对Web应用程序进行编译或解释,并生成HTML流,返回给客户端

4.客户端浏览器解释HTML流,并显示为Web页面

 

二、Asp.net 运行机制详解

 

                                                                                              图1.1 ASP.NET 处理请求的内部过程

 

1.当请求发送到服务器IIS并被其接受后,IIS服务器会判断请求文件的类型:

   1)、如果是静态文件,如html、jpg、gif和txt等,IIS会根据目录找到文件发送给客户端;

   2)、如果是动态文件,如aspx页面,则IIS会通过aspnet_isapi.dll将请求转交给ASP.NET运行时环境,最终的处理结果会返回给IIS,然后发送到客户端。

2.ASP.NET运行时环境

    在Asp.net运行时环境中处理请求是通过一系列对象来完成的,包括HttpApplicationHttpModuleHttpHandler

 1).HttpApplication:处理收到的请求,HttpApplication对象每次只能处理一个请求,这样其成员变量才可用于存储针对每个请求的数据,如Request对象和Response对象;

 2).HttpModule:负责所有请求的初始化和请求收尾工作,即它可以在一次HTTP请求传递到最终的“请求处理中心”(HttpHandler)进行处理之前做一些额外工作,或者在某些情况下

                           终止满足一些条件的HTTP请求,从而起到一个过滤的作用;

    HttpModule应用实例: 

    ①添加一个类,实现IHttpModule接口,并实现该接口中的Dispose()方法和Init()方法      

 public class TestHttpModule:IHttpModule
 
    public TestHttpModule()
   
    //
    // TODO: Add constructor logic here
    //
     

     //Dispose执行释放资源的工作

     public void Dispose()
     
          throw new NotImplementedException();
     

      //Init执行初始化的工作

      public void Init(HttpApplication context)
     
         context.BeginRequest += context_BeginRequest;
         context.EndRequest += context_EndRequest;
     

     private void context_EndRequest(object sender, EventArgs e)
     
         HttpApplication application = sender as HttpApplication;
         application.Response.Write("<p>开始处理请求!</p>");
     

      private void context_BeginRequest(object sender, EventArgs e)
     
           HttpApplication application = sender as HttpApplication;
           application.Response.Write("<p>结束处理请求!</p>");
       

②在Web.config中的<configuration>节点下添加如下内容

<system.webServer>

      <modules>

             <add name="test" type="TestHttpModule" />  //name自己任意赋值,type类型等于自己实现IHttpModule接口的class名称

      </modules>

</system.webServer>

 

   3).HttpHandler:HTTP请求的最终处理中心,负责所有请求的具体工作(请求由该对象的ProcessRequest方法处理,如图1.2) ;

     

                                                                        图1.2  HttpHandler对象的ProcessRequest方法处理请求

 

示例:

①添加一个类,实现IHttpHandler接口,并实现接口内的IsRequest属性和ProcessRequest()方法:(这里创建Handler类不是使用的“一般处理程序”,而是手动添加类创建Handler类)

 

 

 

      ProcessRequest()方法的参数HttpContext 表示当前请求的上下文,通过它的属性可以直接访问Application、Request、Server和Session

 

②在Web.config中configuration节点下添加如下内容:

 

动态网页的工作机制——asp.net运行机制

一、Asp.net运行机制概述1.使用Asp.net进行动态Web开发,编写好Web应用程序,即动态页面,并部署到Web服务器,如IIS中;2.客户端在浏览器输入地址,请求相应的动态页面;3.Web服务器根据客户端的请求,对Web应用程序进行编译或解... 查看详情

浅谈asp.net框架(代码片段)

本篇文章稍微偏原理且底层,有一定难度和且比较晦涩,文章粒度稍微粗些,更细粒度的,会在后续的文章中,结合具体的Demo实例分析。感兴趣的朋友,可以先收藏。一.NET框架概述 1.作用:提供了基于.NET框架开发的基础平台... 查看详情

asp.net运行机制原理

ASP.NET运行机制原理 一、浏览器和服务器的交互原理  (一)、浏览器和服务器交互的简单描述: 1.通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去另一台电脑上访问文件一样,只不过浏... 查看详情

asp.net运行原理及机制

当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块。在ASP.NET3.5中,这个模块叫做HttpHandler(HTTP处理程序组件),... 查看详情

浅谈spark内部运行机制

Spark中最重要的机制有那些?1.RDD,2.Spark调度机制,3Shuffle过程什么是RDD?可以这么说,你懂了RDD,基本上就可以对Hadoop和Spark的一半给吃透了,那么到底是RDDRDD(弹性分布式数据集)首先体现数据集,RDD是对原始数据的封装,该种... 查看详情

浅谈java放射机制

java反射机制概念:用途:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的... 查看详情

asp.net处理机制管道事件图

    查看详情

客户端浏览器的提交机制和 ASP.NET 回发机制有啥区别?

】客户端浏览器的提交机制和ASP.NET回发机制有啥区别?【英文标题】:Whatisthedifferencebetweenclientbrowser\'ssubmitmechanismandtheASP.NETpostbackmechanism?客户端浏览器的提交机制和ASP.NET回发机制有什么区别?【发布时间】:2011-06-0520:54:28【问... 查看详情

ASP.NET Membership 是不是具有生成密码重置 URL 的机制?

】ASP.NETMembership是不是具有生成密码重置URL的机制?【英文标题】:DoesASP.NETMembershiphaveamechanismtogeneratepasswordresetURLs?ASP.NETMembership是否具有生成密码重置URL的机制?【发布时间】:2010-12-1507:46:18【问题描述】:我正在使用具有ASP.N... 查看详情

小学生之浅谈struts2与struts1的运行机制

Struts1工作原理图: 1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向... 查看详情

asp.net机制详细的管道事件流程(代码片段)

...p;最近回顾了一些新知识, 本人简单介绍下ASP .NET机制,:在这里与大家一起分享一下:第一.浏览器向服务器发送请求。1)浏览器向IIS服务器发送请求网址的域名,根据HTTP协议封装成请求报文,通过DNS解析请求的IP地址... 查看详情

wcf技术剖析之二:再谈iis与asp.net管道(代码片段)

...sp;在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NET运行时管道的文章,深入介绍了IIS5.x与IIS6.0HTTP请求的监听与分发机制,以及ASP.NET运行时管道对HTTP请求的处理流程:[原创]ASP.NETProcessModel之一:IIS 查看详情

asp.netmvc是啥?

...sp.net是事件驱动机制为主的但这种机制会有很多坏处例如运行速度慢(相对)不得不为了控制刷新而参入各种技术(如AJAX)ASP.NET的MVC用微软的话说就是摒弃了事件机制摒弃了runat="server"控件其中利弊总之众说纷纭不过.NET专业... 查看详情

在 ASP.NET MVC 应用程序中实现细粒度安全(即授权)的最佳机制是啥?

...在ASP.NETMVC应用程序中实现细粒度安全(即授权)的最佳机制是啥?【英文标题】:Whatisthebestmechanismtoimplementgranularsecurity(i.e.authorization)inanASP.NETMVCapplication?在ASP.NETMVC应用程序中实现细粒度安全(即授权)的最佳机制是什么?【发... 查看详情

运行 EXE 文件的 ASP.NET

】运行EXE文件的ASP.NET【英文标题】:ASP.NETrunninganEXEFile【发布时间】:2009-06-2416:00:40【问题描述】:我正在尝试从ASP.NET网站运行旧的.NET应用程序。在阅读了web和***(对于类似的问题)之后,我得到了以下代码。问题是我总是收... 查看详情

调试运行缓慢的 ASP.NET 网站?

】调试运行缓慢的ASP.NET网站?【英文标题】:DebugginganASP.NETwebsitethatisrunningslowly?【发布时间】:2018-09-2113:17:21【问题描述】:越来越多的用户抱怨我们的ASP.NET4.5.2网站运行缓慢或只是普遍“冻结”。从我们的测试服务器和我们... 查看详情

从 ASP.net 运行 Windows 计划任务

】从ASP.net运行Windows计划任务【英文标题】:RunningaWindowsScheduledTaskfromASP.net【发布时间】:2013-04-2723:25:36【问题描述】:我有一个Windows计划任务,它每小时运行一个数据库导入过程,但我希望用户能够通过点击ASP.net仪表板中的... 查看详情

深入了解asp.net运行内幕

... 事情要知道根本所在原理所在写程序更应该知道程序的运行机制本文主要介绍的运行内幕  HttpApplication触发事件来通知你的程序有事发生以此来负责请求流转这作为HttpApplicationInit()函数的一部分发生(用Reflector查看SystemWebHttpA... 查看详情