ASP.NET PipeLine #Reprinted#

从ASP.NET 1.0 起,相比于ASP中的COM, PipeLine 就是一项重大的改进。 ASP.NET 时代的管道模型究竟是怎么样的?

    我们能接触到的四个最重要的概念就是HttpApplication, theHttpContext, the HttpModule, and the HttpHandler.

The HttpApplication

一般来说,一个Request 的Endpoint是一个Http Handler。 但是一个Handler存在的周期非常的短,比如说我们想缓存一个全局的对象,无法在这个Handler                         中去长久保存。而HttpApplication就有这个作用。

        The HttpContext

一个Pipe周期中各个过程直接需要传递Request的相关信息,就需要这么一个中介。值得注意的是我们并不需要显式的去传递这个HttpContext, 因为这个对象存在于PipeLine中可以静态的获得。

The HttpModules

HttpModules

如果说Http Handler是一个Request的终点的话,Http Modules是所有请求必经之路PipeLine的一段路。

首先要注册Modules, 一般在Web.config. 当然IIS的集成模式下,可以用命令行的方式注册。

Modules 可以跟踪很多事件,然后在这些事件中处理Request.

HTTP Modules 和Global.asax 的选择

Modules的最大好处就是能重用,能编译放到GAC里面。

1 如果代码不需要重用, Global.asax 足够了

2 如果有特殊需求,比如说 Session_Start and Session_End的事件在Modules里面是无法处理的。

The HttpHandlers

是一个Request的Endpoint.像aspx,asmx,ashx这些其实就是实现了IHttpHandler接口的一些类。

时间: 2024-11-10 01:02:32

ASP.NET PipeLine #Reprinted#的相关文章

asp.net pipeline完整图

11个显著提升 ASP.NET 应用程序性能的技巧——第1部分

采用 ASP.NET 和 IIS 构建 Web 应用程序并将其托管到 Web 服务器上极其简单,但是许多可提升 Web 应用程序性能的机会或隐藏配置同样不能忽视.本系列博文将介绍一些简单但却可以应用于任何 Web 应用程序的技巧,而它们却是经常被忽略或遗忘的. 1- 内核模式缓存--这是广泛用于程序编写的主要工具之一,可加速 Web 应用程序.但是大多数时候,很少开发者以最佳方式应用内核模式缓存,仅仅发挥其部分主要优势.由于所有 ASP.NET 请求均会经历不同阶段,因此可在不同级别使用缓存,具

ASP.NET Identity 身份验证和基于角色的授权

ASP.NET Identity 身份验证和基于角色的授权 阅读目录 探索身份验证与授权 使用ASP.NET Identity 身份验证 使用角色进行授权 初始化数据,Seeding 数据库 小结 在前一篇文章中,我介绍了ASP.NET Identity 基本API的运用并创建了若干用户账号.那么在本篇文章中,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Identity 进行身份验证(Authentication)以及联合ASP.NET MVC 基于角色的授权

ASP.NET Web API Security

实现安全的方式既可以是host提供,也可以框架提供. 1,HTTP Module 方式,工作在IIS上,所以web api要托管在IIS上才行.其作用于HTTP管道的最前端,所以这种方式影响的是全局,对每一个请求都要拦截,因此弹性不足. 2,OWIN Middleware,中间件也是属于请求拦截器,类似HTTP Module,会拦截所有的请求,影响全局.其作用于OWIN pipeline(因此需要满足OWIN标准的web服务器支持,不再依赖System.Web),Web API 2框架也支持这种

Url Rewrite 再说Url 重写

前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL>, URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜索一下URL-Rewrite可以找到很多URL-Rewrite方面的文章和组件,自己以前也多次接触过这个东东,也来说说吧. ScottGu 有一篇非常经典的 URL-Rewrite Blog Tip/Trick: Url Rewriting with ASP.NET http://weblogs.asp.net

.NET WCF Return String 字符串有反斜杠的处理

应该是: {"Message":"Hello World"} 结果是:" {\"Message\":\"Hello World\"}" 正确的写法是: [WebGet(UriTemplate = "hello")] public void SayHello() { SimpleMessage message = new SimpleMessage() {Message = "H

Response.End() VS Context.ApplicationInstance.CompleteRequest()

The Server.Transfer, Response.Redirect, Response.End methods all raise exceptions. Each of these methods internally call Response.End. The call to Response.End, in turn, causes a ThreadAbortException exception.https://msdn.microsoft.com/en-us/library

What is OWIN? A Beginners Guide

http://www.codedigest.com/posts/1/what-is-owin-a-beginners-guide http://owin.org/html/spec/owin-1.0.1.html Introduction If you look at the current web stacks in open-source, it is fast evolving with wide-range of capabilities getting added day by day

大家好

http://www.yugaopian.com/people/259723 http://www.yugaopian.com/people/259744 http://www.yugaopian.com/people/259783 http://www.yugaopian.com/people/259824 http://www.yugaopian.com/people/259839 http://www.yugaopian.com/people/259933 http://www.yugao