asp.net 运行principle 体会
来源:互联网 发布:淘宝怎么看自己的等级 编辑:程序博客网 时间:2024/05/18 01:31
因为觉的从今后要跟微软的东西打交道了,所以现在开始疯狂的学习.net,就从aspnet开始了。
当然aspnet要运行,离不开IIS,实际上网站能运行是建立在IIS和netframework的基础上,汗 好像在说废话。
浏览器端发出的请求被IIS截获,接下来的流程大概是
IIS收到扩展名为.aspx请求后,加载ASP.NET ISAPI---"aspnet_isapi.dll",ASP.NET ISAPI 会启动一个名为"aspnet_wp.exe"的工作进程,“aspnet_wp.exe”启动时会加载CLR、创建appDomain,在创建对appDomain时会实例化一个名为ISAPIRuntime类,ISAPIRuntime是Asp.net与asp.net ISAPI通信的桥梁。
IIS与ASP.NET ISAPI都是非托管程序,而ASP.NET HttpRuntime则是一个托管程序,ASP.NET ISAPI 通过COM的方式与ASP.NET Http Runtime基于命名管道通信。ISAPIRuntime是一个特殊的类,它实现接口IISAPIRuntime,该接口基于COM。所以说非托管程序可以以COM的方式访问。
非托管代码调用isapiruntime.ProcessRequest()方法
ASP.NET ISAPI 调用 ISAPIRumtime ProcessRequest 方法的,这时就到了托管环境的天下
在ProcessRequest 方法中每个请求得到一个isapiworkerrequest
并且把isapiworkerrequest当做参数传递给httpruntime.ProcessRequest方法
在httpruntime.ProcessRequest方法中
通过传递进来的workerrequest创建HttpContext对象
创建HttpApplication并把HttpContext作为参数传递给HttpApplication
调用HttpApplication.initi()启动管道事件序列,勾住模块和处理器
调用HttpApplication.ProcessRequest()方法
上面说的一堆都是底层的,实际上就是要把请求传递给处理这个请求的httphandler,但是在到达httphandler前这个请求要经过一系列的httpmoduls,这个httpmodule对请求请求安全或者其他方面的过滤和修改。
以aspx页面为例,当处理aspx的handler的处理过程。pagehanlder中请求aspx特面,然后asp引擎处理这个页面,把页面转换成类对象,这个类对象暂时就缓存在内存中了,当下次页面请求时,如果是相同的页面,那么直接取内存中取类对面的然后输出,如果这个页面设置的缓存,则将类对象缓存在aspnet缓存区中。当下次刷新页面时,则直接从缓存取对象输出。
mark 下,不管对不对,等过段时间再来估计理解会更深点吧。
- asp.net 运行principle 体会
- ASP.NET - Application Life Cycle Principle
- ASP.NET MOBILE开发体会
- 学习ASP.NET的体会(一)
- 初学asp.net (c#)的一些体会
- 学习ASP.NET的体会(一)
- Asp.net Mvc开发体会点滴 一
- Asp.net Mvc开发体会点滴 一
- ASP.NET运行模式
- ASP.net运行流程
- ASP.NET运行模式
- ASP.NET运行时
- asp.net运行超时
- asp.net 运行原理
- asp.net 运行原理
- asp.net运行原理
- asp.net运行原理
- ASP.NET 运行原理
- 内部推荐的职位
- J2EE架构师
- 补码 详解
- 字符串string和内存流MemoryStream及比特数组byte[]互转比较
- 2010年考研复习计划
- asp.net 运行principle 体会
- Flex游戏编程/一些Flex开源项目的整理
- 人生真的变幻无长?
- 祖先类PowerObject
- sharepoint 工具窗格 很小
- Oracle 和 Informix 数据库的锁
- Java面試題
- 当今社会的九个“定律”
- 网站广告代码优化