在Windows平台上,HTTP 管道需要IIS的支持 运行asp.net iis 需要两个文件 ASPNET_ISAPI.DLL和 ASPNET_WP.EXE
· ASPNET_ISAPI.DLL是一个ISAPI Extention他将发向IIS的请转交ASPNET_WP.EXE处理
· ASPNET_WP.EXE使用HttpRuntime对请求进行具体处理
HTTP处理管道中的类在System.Web名称空间中定义,主要有以下类型: · HttpWorkerRequest 抽象类定义了ASP.Net页面处理请求的基本方法; · HttpRuntime 提供了处理应用的一组服务; · HttpContext 保存了处理一次请求的所有相关上下文信息; · HttpApplicationFactory 提供相关目录的应用程序; · HttpApplication 定义了所有ASP.Net应用程序的通用的方法、属性和事件。这个类也是在用户在global.asax文件中定义的应用的基类; · Modules 处理请求前和响应后的事件; · HandlerFactories 提供应用程序中的Handlers; · Handlers 处理请求和响应。
借用 一个简单的列子,别人写的
以下是改写的一个简单的httpmodules来重写URL的例子。
public class MyHttpModule : IHttpModule
{
public MyHttpModule()
{
}
public void Init(HttpApplication application)
{
application.BeginRequest += (new EventHandler(this.Application_BeginRequest));
}
public void Dispose()
{
}
private void Application_BeginRequest(Object source,EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
string filePath = context.Request.Path;
string newFilePath = "1.htm";
context.RewritePath(newFilePath);
}
}
在web.config的<httpModules>节点中加上<add name="MyHttpModule" type="MyHttpModule"/>