What is the difference between HttpApplication class and IHttpModule?
What is the difference between HttpApplication class and IHttpModule?
HttpApplication
is the web application instance that has multiple IHttpModule
instances registered in it. That's why every IHttpModule
instance handles a certain part of application execution thus can usually be reused on many applications (think of a Session
handling module or authentication module).
In terms of application/request handling there are many similarities. HttpApplication
has access to application-level events like OnStart, OnEnd etc as well as request-level events like OnBeginRequest, OnEndRequest etc. IHttpModule
on the other hand only has access to request-level events.
Additional note: It's possible to handle application start and end events even using an IHttpModule, but this is a non-documented feature and you have to take some special precautions. Check these two blog posts that explain it all into great depth:
Writing a customIHttpModule
that handlesApplication_OnStart
event
How to correctly useIHttpModule
to handleApplication_OnStart
event
I suggest you read a bit about application life cycle execution pipeline:
The HttpApplication Class
The HttpApplication class is used to access application wide information within an ASP.NET web application or site. Table B.3 shows the HttpApplication class properties.
Property | Description |
---|---|
Application | Returns a reference to an HttpApplicationState bag instance. This is the object that is used in the global.asax and any ASP.NET Web Form; it is this collection that holds the Application scoped variables/objects/components. |
Context | Provides access to an HttpContext object for the current instance of HttpApplication, which provides access to HTTP pipeline-module exposed objects (Request/Response, for example). |
Modules | Provides access to a collection of all HttpModules configured ... |
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-09-18 The implementation of iterators in C# and its consequences (part 1) Raymond Chen
2019-09-18 What is the use of c# “Yield” keyword ?
2019-09-18 What is the yield keyword used for in C#?
2019-09-18 Coroutine 协程
2018-09-18 beyond compare 比较文本 standard alignment VS unaligned
2015-09-18 左移运算符
2015-09-18 大小端以及字节序的问题 Endianness