网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET HTTP运行时组成详解

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13
配置的。 
    
    只有少数几种被客户端请求的资源类型由 IIS 直接处理。例如,对 HTML 页面、文本文件、JPEG 和 GIF 图像的传入请求由 IIS 处理。对 Active Server Page (*.asp) 文件的请求通过调用名为 asp.dll 的 ASP 专用扩展模块进行解析。同样,对 ASP.NET 资源(例如,*.aspx、*.asmx、*.ashx)的请求将传递到 ASP.NET ISAPI 扩展。该系统组件是一个名为 aspnet_isapi.dll 的 Win32 DLL。ASP.NET 扩展可以处理多种资源类型,包括 Web 服务和 HTTP 处理程序调用。 
   
    ASP.NET ISAPI 扩展是一个 Win32 DLL,未集成托管代码。它是接收和分派对各种 ASP.NET 资源的请求的控制中心。按照设计,该模块存在于 IIS 进程中,在具有管理员权限的 SYSTEM 帐户下运行。开发人员和系统管理员不能修改此帐户。ASP.NET ISAPI 扩展负责调用 ASP.NET 辅助进程 (aspnet_wp.exe),而该进程又负责控制请求的执行。除了对请求进行安排以外,ASP.NET ISAPI 还监视辅助进程的运行情况,并在性能降低到一定程度时将进程取消。 
   
    辅助进程是一小段 Win32 shell 代码,集成了公共语言运行库 (CLR) 并运行托管代码。它负责处理对 ASPX、ASMX 和 ASHX 资源的请求。一般来说,此进程在一台给定的计算机中只有一个实例。所有当前激活的 ASP.NET 应用程序均在其中运行,每个应用程序都位于一个独立的 AppDomain 中。但是,如前所述,辅助进程支持 Web Garden 模式,即进程的相同副本都运行在与进程密切相关的 CPU 中。(更多内容,请参阅本文后面的“Web Garden 模型”部分。) 
   
    ISAPI 和辅助进程之间的通讯是使用一组命名管道进行的。命名管道是一种 Win32 机制,用于跨进程边界传输数据。顾名思义,命名管道的工作方式与管道相似:在一端输入数据,在另一端输出相同的数据。建立的管道既可以连接本地进程,也可以连接远程计算机上运行的进程。对于本地进程间通讯,管道是 Windows 中的最有效、最灵活的工具。 
   
    为确保获得最优性能,aspnet_isapi 使用异步命名管道来将请求转发给辅助进程并获得响应。另一方面,辅助进程在需要查询有关 IIS 环境的信息(即服务器变量)时又使用同步管道。aspnet_isapi 模块创建固定数量的命名管道,并使用重叠的操作以通过小的线程池处理同一时间进行的连接。当通过管道进行的数据交换操作结束后,完成例程将断开客户端,并重新使用管道实例为新的客户端服务。线程池和重叠操作均可以保证使 ASP.NET ISAPI 的性能达到令人满意的水平。但是,aspnet_isapi 扩展决不会处理 HTTP 请求。 
   
    ASP.NET 请求的处理逻辑可以概括为以下步骤: 
   
    当请求到达时,IIS 检查资源类型并调用 ASP.NET ISAPI 扩展。如果启用了默认的进程模型,aspnet_isapi 会将请求排队,并将请求分配给辅助进程。所有的请求数据都通过异步 I/O 发送。如果启用了 IIS 6&nbs

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号