`
jiagou
  • 浏览: 2531229 次
文章分类
社区版块
存档分类
最新评论

深入理解IIS工作原理

 
阅读更多

基本概念:

1. 站点程序:在IIS中我们所新建的站点,可以为其配置ASP.net以及应用程序池的版本。

2. 虚拟目录:用来将不同的文件夹中的内容通过虚拟目录组织到同一个文件夹中,相当于一个应用程序,也对应着一个应用程序池。

3. 应用程序池:《微软概念》是将一个或多个应用程序连接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中的应用程序所产生的问题的影响。

4. 工作进程隔离模式:防止一个应用程序或站点停止了而影响另一个应用程序或站点。应用程序池直接从内核接收请求而非WWW服务。

5. W3WP.exe是IIS的工作进程池,每一个w3wp.exe是IIS的一个web园,一般在IIS6.0中出现,一般的工作进程池只有一个web园,但是如果在工作进程池的web园中最大工作进程数被修改可能出现多个w3wp.exe,或者多个工作进程池同事工作也可能出现多个w3wp.exe。它的启动用户是系统内置安全账户network service。

6. Web Gargen:指一个应用程序可以再多个进程(w3wp.exe)中来执行,一次请求使用其中的一个。用这个的主要目的是提高程序的可用性。当其中一个进程发生错误,那么也不会影响其他进程。发生错误的进程可以根据规则关闭,而其他的进程则可以继续工作。

对于IIS6,IIS7,每个应用程序池都会创建一个w3wp.exe进程。但是并不是所有情况都是一个应用程序池对应一个w3wp.exe进程。web garden。或者一些异常发生的时候,就会一个应用程序池对应多个w3wp.exe进程。应用程序池会在没有请求的时候定时回收,或者发生错误的时候,自动重新建立一个处理进程w3wp.exe进程,如果运气好,就会看到没有配置web garden时,一个应用程序池对应多个w3wp.exe进程。

同样可以对虚拟目录来设置应用程序池,设置方法和设置站点的应用程序池是一样的。同样也可以进行Web Gargen的配置。

在应用程序池的属性选项卡中,能找到关于IIS对于w3wp进程的监控功能,它提供时间参数设置(隔多少时间来ping一次工作进程),在多少时间内未返回值则将此进程视为timeout,或者死掉的状态,具体数值可以再IIS手册中查到相关值,此时我们可以通过使用程序语言读取系统日志文件来跟踪到此进程的ID,之后可以使用IISAPP.vbs得到该进程对应的应用程序池,从而可以定位到该程序池所对应的应用程序以及可以通过对应用程序池操作来恢复此故障。

关于HTTP请求的处理(ASP级别)

IIS 6的ASP.net请求处理过程:

IIS5.X是通过Inetlnfo.exe监听request并把request分发到work process。换句话说,在IIS5.X中对request的监听和分发是在user mode中进行,在IIS6中,这种工作被移植到kernel mode中进行,所有的这一切都是通过一个新的组件:http.sys来负责。

PS:免用户应用程序访问或者修改关键的操作系统数据,windows提供了两种处理器访问模式:用户模式(User Mode)和内核模式(kernel mode)。一般地,用户程序运行在user mode下,而操作系统代码运行在kernel mode下,kernel mode的代码允许访问所有系统内存和所有CPU指令。在user mode下,http.sys接收到一个机遇aspx的http request,然后它会根据IIS中的Metabase查看该基于该request的application属于哪个application pool,如果该application pool不存在,则创建之,否则直接将request发送到对应的application pool的queue中。每个application pool对应着一个worker processs:w3wp.exe,毫无疑问他是运行在user mode下的。在IIS Metabse中维护着application pool 和 worker process的Mapping,WAS(Web Administrative Service根据这样一个mapping,将存在于某个application poos queue的request传递到对应的worder process(如果没有,就穿件一个这样的进程)。在worker process初始化的时候,加载ASP.net ISAPI,asp.net ISAPI进而加载CLR,通过APPManagerAppDomainFactory的Create方法为Application穿件一个Application Domain,通过ISAPIRuntime的ProcessRequest处理Request,进而将流程进入到ASP.net http runtime pipeline。

分享到:
评论

相关推荐

    IIS工作原理

    进一步理解IIS工作的原理,深入学习掌握IIS的运行机制。

    深入解析ATL(第2版).pdf

     四位顶尖的Windows编程专家在本书中系统地揭示了ATL的内部工作原理,他们解释了ATL是 如何工作的,以及为什么要以这样的方式工作。通过本书,客户端开发人员可以掌握ATL中的窗口、COM控件、MFC集成、Web服务代理...

    windows 2000 server资源大全(PDF)

    Windows 2000 Server资源大全 第6卷 深入开发IIS 5本书深入探讨了IIS 5的新特性和体系结构,包括增强的管理、安全和应用的支持能力,并详细阐述如何从包括IIS 4.0在内的其他Web服务器向IIS 5进行设置、内容和应用...

    数据库原理(第5版)

    但如果希望深入理解特定的DBMS或使用本书没有介绍的DBMS产品,则需要额外的书籍或资料。Prentice Hall提供了Microsoft Access 2010和其他DBMS产品的大量图书,可以结合本书一起学习。 Access工作台 本书的这一版继续...

    ASP.NET动态网站开发

    通过本章学习,使同学们对ASP.NET动态网站开发有一个初步的理解和认识,熟悉ASP.NET的开发环境,并对ASP.NET的一些基本概念有一个深入的理解。 1、动态网站的工作原理 2、IIS的工作原理 3、 ASP.NET的程序结构 4、 ...

    网络安全培训方案.docx

    对Windows、Linux及SQL语句有一定的了解即可 学生的知识能力提高 本课程重点培训学生的Web渗透测试能力,通过20天的渗透测试培训,学生可具备以下能力 1)、了解Web服务器的工作过程及原理 2)、了解HTTP协议 ...

    ASP企业进销存管理系统设计(源代码+论文)_new.rar

    一类资源描述:Java ASP系统毕业设计资源 ...在借鉴源代码时,重要的是确保学生理解代码的逻辑和工作原理,而不仅仅是简单地复制。 希望这种资源描述能为您提供所需的信息。如有其他问题或需要更多的描述,请告诉我。

    网络安全培训方案(1).doc

    对学生知识的要求 对Windows、Linux及SQL语句有一定的了解即可 学生的知识能力提高 本课程重点培训学生的Web渗透测试能力,通过20天的渗透测试培训,学生可具备以下能 力 1)、了解Web服务器的工作过程及原理 ...

    网络安全培训方案.doc

    对学生知识的要求 对Windows、Linux及SQL语句有一定的了解即可 学生的知识能力提高 本课程重点培训学生的Web渗透测试能力,通过20天的渗透测试培训,学生可具备以下能 力 1)、了解Web服务器的工作过程及原理 ...

    亮剑.NET深入体验与实战精要3

    8.1.3 Ajax的工作原理 326 8.1.4 Ajax的优点 326 8.1.5 Ajax的问题 327 8.1.6 Ajax适用场景 327 8.1.7 Ajax不适用场景 329 8.1.8 XMLHttpRequest开发实例 329 8.2 微软VS.NET的Ajax开发 333 8.2.1 安装ASP.NET 2.0 ...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    在正式研究 URL 如何实现重写之前,应首先了解 Microsoft® Internet Information Services (IIS) 如何处理传入请求,这一点非常重要。当请求到达 IIS Web 服务器时,IIS 检查被请求文件的扩展名以确定如何处理该...

    服务器安全管理办法.doc

    第七条 系统管理员要深入了解系统的工作原理,不断提高系统的管理水平。在系统出现一般性 的故障或错误时,能及时予以排除;而出现重大问题时,可通过系统的恢复等手段加以 解决。 第八条 系统管理员对负责的服务器...

    亮剑.NET深入体验与实战精要2

    8.1.3 Ajax的工作原理 326 8.1.4 Ajax的优点 326 8.1.5 Ajax的问题 327 8.1.6 Ajax适用场景 327 8.1.7 Ajax不适用场景 329 8.1.8 XMLHttpRequest开发实例 329 8.2 微软VS.NET的Ajax开发 333 8.2.1 安装ASP.NET 2.0 ...

    网络安全培训方案(2).docx

    对Windows、Linux及SQL语句有一定的了解即可 学生的知识能力提高 本课程重点培训学生的Web渗透测试能力,通过20天的渗透测试培训,学生可具备以下能力 1)、了解Web服务器的工作过程及原理 2)、了解HTTP协议 ...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    ASP.NET 4高级程序设计(第4版)》【原版书为:Pro ASP.NET 4 in C# 2010】是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的...

    .Net.Framework3.5开发技术详解

    《.NET Framework3.5开发技术详解》没有对各个功能的工作原理进行深入的揭示,而是采用“知识进述”+“代码示例”的方式,让读者可以快速体验并掌握.NET Framework 3.5的开发方法。 《.NET Framework3.5开发技术...

    Web安全深度剖析(张柄帅)

    《Web安全深度剖析》总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境,更好地帮助读者深入了解Web应用程序中存在的漏洞,防患于未然。 《Web安全深度剖析...

Global site tag (gtag.js) - Google Analytics