码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET运行机制

时间:2017-11-07 19:57:56      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:获取   封装   内核   cto   握手   文件读取   托管   spn   .dll   

 

刚开始与服务器通过3次握手建立连接后将用户动作封装成http请求的报文,然后通过Socket客户端发送到后台服务器
的内核模块中的HTTP.SYS(),然后将请求分发给用户模式中的IIS,IIS中的w3svc服务(svchost.exe)拿到请求后,
如果是静态文件(html,css,js....),直接将请求的文件读取出来封装成响应报文发送给客户端,如果是动态文件,
发现自己处理不了,就去inetinfo.exe进程里面获得当前请求交给谁处理, 再将请求分发给具体的工作进程(w3wp.exe)
里面的aspnet_isapi.dll(IIS6+版本,aspnet_isapi.dll在工作进程的非托管模块里面),然后把请求给托管环境的
ISAPIRuntime的ProcessRequest方法,此方法有一个ecb句柄,
把ecb句柄指向的内容创建成了一个HttpWorkerRequest对象,然后交给HttpRuntime,将创建的HttpWorkerRequest对象
传递给HttpRuntime的PR方法,在HttpRuntime方法内部再将HttpWorkerRequest对象继续封装成高级的HTTPContext
上下文对象,HTTPContext包含了HttpRequest和HttpResponse等对象,然后通过HttpApplicationFactory从对象池
(为了重用对象,解决性能慢的问题,说白了就是一个对象数组)中获取一个HttpApplication实例,让HttpApplication
负责执行管道的流动,然后依次返回给客户端

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 技术分享

技术分享

技术分享

 

 技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 技术分享

技术分享

技术分享

技术分享

技术分享

 

ASP.NET运行机制

标签:获取   封装   内核   cto   握手   文件读取   托管   spn   .dll   

原文地址:http://www.cnblogs.com/xiaoweigogo/p/7800079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!