ASP.NET Web编程原理 之
IIS架构与HTTP请求处理流程(2)
<meta content="Word.Document" name="ProgId"> <meta content="Microsoft Word 12" name="Generator"> <meta content="Microsoft Word 12" name="Originator"> <link href="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"> <link href="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso" rel="Edit-Time-Data"> <link href="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_oledata.mso" rel="OLE-Object-Data"> <style> v/:* {behavior:url(#default#VML);} o/:* {behavior:url(#default#VML);} w/:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <link href="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"> <link href="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"> <style> <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:黑体; panose-1:2 1 6 9 6 1 1 1 1 1; mso-font-alt:SimHei; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482945 953122042 22 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:华文中宋; panose-1:2 1 6 0 4 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:647 135200768 16 0 262303 0;} @font-face {font-family:隶书; panose-1:2 1 5 9 6 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:1 135135232 16 0 262144 0;} @font-face {font-family:新宋体; panose-1:2 1 6 9 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"/@新宋体"; panose-1:2 1 6 9 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"/@黑体"; panose-1:2 1 6 9 6 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482945 953122042 22 0 262145 0;} @font-face {font-family:"/@隶书"; panose-1:2 1 5 9 6 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:1 135135232 16 0 262144 0;} @font-face {font-family:"/@华文中宋"; panose-1:2 1 6 0 4 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:647 135200768 16 0 262303 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} h1 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 1 Char"; mso-style-next:正文; margin-top:24.0pt; margin-right:0cm; margin-bottom:24.0pt; margin-left:0cm; text-align:center; text-indent:0cm; line-height:12.0pt; mso-line-height-rule:exactly; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:1; mso-list:l0 level1 lfo1; font-size:26.0pt; mso-bidi-font-size:36.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:华文中宋; mso-font-kerning:22.0pt; font-weight:normal; mso-bidi-font-weight:bold;} h2 {mso-style-update:auto; mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 2 Char"; mso-style-next:正文; margin-top:13.0pt; margin-right:0cm; margin-bottom:13.0pt; margin-left:0cm; text-align:center; text-indent:0cm; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:2; mso-list:l0 level2 lfo1; font-size:24.0pt; font-family:"Times New Roman","serif"; color:#993300; mso-font-kerning:1.0pt; font-weight:normal; mso-bidi-font-weight:bold;} h3 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 3 Char"; mso-style-next:正文; margin-top:6.0pt; margin-right:0cm; margin-bottom:6.0pt; margin-left:0cm; text-indent:0cm; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:3; mso-list:l0 level3 lfo1; font-size:18.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:隶书; color:#339966; mso-font-kerning:1.0pt; font-weight:normal; mso-bidi-font-weight:bold;} h4 {mso-style-update:auto; mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 4 Char"; mso-style-next:正文; margin-top:6.0pt; margin-right:0cm; margin-bottom:0cm; margin-left:0cm; margin-bottom:.0001pt; text-indent:0cm; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:4; mso-list:l0 level4 lfo1; font-size:16.0pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman","serif"; mso-font-kerning:1.0pt; font-weight:normal; mso-bidi-font-weight:bold;} h5 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 5 Char"; mso-style-next:正文; margin-top:14.0pt; margin-right:0cm; margin-bottom:14.5pt; margin-left:0cm; text-indent:0cm; line-height:156%; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:5; mso-list:l0 level5 lfo1; font-size:14.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:新宋体; color:#333399; mso-font-kerning:1.0pt;} h6 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 6 Char"; mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.2pt; margin-left:0cm; text-indent:0cm; line-height:133%; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:6; mso-list:l0 level6 lfo1; font-size:12.0pt; font-family:"Arial","sans-serif"; mso-fareast-font-family:黑体; mso-bidi-font-family:"Times New Roman"; mso-font-kerning:1.0pt;} p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 7 Char"; mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.2pt; margin-left:0cm; text-indent:0cm; line-height:133%; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:7; mso-list:l0 level7 lfo1; font-size:10.5pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:宋体; color:navy; mso-font-kerning:1.0pt; font-weight:bold;} p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 8 Char"; mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.2pt; margin-left:0cm; text-indent:0cm; line-height:133%; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:8; mso-list:l0 level8 lfo1; font-size:12.0pt; font-family:"Arial","sans-serif"; mso-fareast-font-family:黑体; mso-bidi-font-family:"Times New Roman"; mso-font-kerning:1.0pt;} p.MsoHeading9, li.MsoHeading9, div.MsoHeading9 {mso-style-unhide:no; mso-style-qformat:yes; mso-style-link:"标题 9 Char"; mso-style-next:正文; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.2pt; margin-left:0cm; text-indent:0cm; line-height:133%; mso-pagination:lines-together; page-break-after:avoid; mso-outline-level:9; mso-list:l0 level9 lfo1; font-size:10.5pt; font-family:"Arial","sans-serif"; mso-fareast-font-family:黑体; mso-bidi-font-family:"Times New Roman"; mso-font-kerning:1.0pt;} p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText {mso-style-noshow:yes; mso-style-unhide:no; mso-style-link:"脚注文本 Char"; margin:0cm; margin-bottom:.0001pt; mso-pagination:none; layout-grid-mode:char; font-size:9.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} p.MsoCaption, li.MsoCaption, div.MsoCaption {mso-style-unhide:no; mso-style-qformat:yes; mso-style-next:正文; margin:0cm; margin-bottom:.0001pt; text-align:center; mso-pagination:none; font-size:10.0pt; font-family:"Arial","sans-serif"; mso-fareast-font-family:黑体; mso-font-kerning:1.0pt;} span.MsoFootnoteReference {mso-style-noshow:yes; mso-style-unhide:no; vertical-align:super;} span.1Char {mso-style-name:"标题 1 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 1"; mso-ansi-font-size:26.0pt; mso-bidi-font-size:36.0pt; font-family:华文中宋; mso-fareast-font-family:华文中宋; mso-font-kerning:22.0pt; mso-bidi-font-weight:bold;} span.2Char {mso-style-name:"标题 2 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 2"; mso-ansi-font-size:24.0pt; mso-bidi-font-size:24.0pt; color:#993300; mso-font-kerning:1.0pt; mso-bidi-font-weight:bold;} span.3Char {mso-style-name:"标题 3 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 3"; mso-ansi-font-size:18.0pt; mso-bidi-font-size:18.0pt; font-family:隶书; mso-fareast-font-family:隶书; color:#339966; mso-font-kerning:1.0pt; mso-bidi-font-weight:bold;} span.4Char {mso-style-name:"标题 4 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 4"; mso-ansi-font-size:16.0pt; mso-bidi-font-size:12.0pt; mso-font-kerning:1.0pt; mso-bidi-font-weight:bold;} span.5Char {mso-style-name:"标题 5 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 5"; mso-ansi-font-size:14.0pt; mso-bidi-font-size:14.0pt; font-family:新宋体; mso-fareast-font-family:新宋体; color:#333399; mso-font-kerning:1.0pt; font-weight:bold;} span.6Char {mso-style-name:"标题 6 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 6"; mso-ansi-font-size:12.0pt; mso-bidi-font-size:12.0pt; font-family:"Arial","sans-serif"; mso-ascii-font-family:Arial; mso-fareast-font-family:黑体; mso-hansi-font-family:Arial; mso-font-kerning:1.0pt; font-weight:bold;} span.7Char {mso-style-name:"标题 7 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 7"; mso-ansi-font-size:10.5pt; mso-bidi-font-size:10.5pt; color:navy; mso-font-kerning:1.0pt; font-weight:bold;} span.8Char {mso-style-name:"标题 8 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 8"; mso-ansi-font-size:12.0pt; mso-bidi-font-size:12.0pt; font-family:"Arial","sans-serif"; mso-ascii-font-family:Arial; mso-fareast-font-family:黑体; mso-hansi-font-family:Arial; mso-font-kerning:1.0pt;} span.9Char {mso-style-name:"标题 9 Char"; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:"标题 9"; mso-ansi-font-size:10.5pt; mso-bidi-font-size:10.5pt; font-family:"Arial","sans-serif"; mso-ascii-font-family:Arial; mso-fareast-font-family:黑体; mso-hansi-font-family:Arial; mso-font-kerning:1.0pt;} span.Char {mso-style-name:"脚注文本 Char"; mso-style-noshow:yes; mso-style-unhide:no; mso-style-locked:yes; mso-style-link:脚注文本; mso-ansi-font-size:9.0pt; mso-bidi-font-size:9.0pt; mso-font-kerning:1.0pt;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-hansi-font-family:"Times New Roman"; mso-font-kerning:0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no; mso-footnote-separator:url("file:///C:/Users/JINXUL~1/AppData/Local/Temp/msohtmlclip1/01/clip_header.htm") fs; mso-footnote-continuation-separator:url("file:///C:/Users/JINXUL~1/AppData/Local/Temp/msohtmlclip1/01/clip_header.htm") fcs; mso-endnote-separator:url("file:///C:/Users/JINXUL~1/AppData/Local/Temp/msohtmlclip1/01/clip_header.htm") es; mso-endnote-continuation-separator:url("file:///C:/Users/JINXUL~1/AppData/Local/Temp/msohtmlclip1/01/clip_header.htm") ecs;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:123738110; mso-list-template-ids:-310468926;} @list l0:level1 {mso-level-start-at:8; mso-level-style-link:"标题 1"; mso-level-suffix:none; mso-level-text:第%1章; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level2 {mso-level-number-format:none; mso-level-style-link:"标题 2"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level3 {mso-level-number-format:none; mso-level-style-link:"标题 3"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level4 {mso-level-number-format:none; mso-level-style-link:"标题 4"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level5 {mso-level-number-format:none; mso-level-style-link:"标题 5"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level6 {mso-level-number-format:none; mso-level-style-link:"标题 6"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level7 {mso-level-number-format:none; mso-level-style-link:"标题 7"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level8 {mso-level-number-format:none; mso-level-style-link:"标题 8"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l0:level9 {mso-level-number-format:none; mso-level-style-link:"标题 9"; mso-level-suffix:none; mso-level-text:""; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:0cm; text-indent:0cm;} @list l1 {mso-list-id:2014642387; mso-list-type:hybrid; mso-list-template-ids:-312174330 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:21.0pt; mso-level-number-position:left; margin-left:21.0pt; text-indent:-21.0pt; font-family:Wingdings;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --> </style>
8.1.2 应用程序池与工作者进程
“
应用程序池(
Applicaion Pool
)
”是
Windows Server
为提升
Web
服务的性能和可靠性而引入的一个
Web
程序隔离机制。
一个应用程序池可包含一个或多个
Web
应用程序。
ASP.NET Web
应用程序必须运行在一个应用程序池中。
在
Windows Server
中,一个或多个“
工作者进程(
Worker Process
)
”为应用程序池提供服务,停止一个应用程序池将导致这些工作者进程被关闭,这时,所有发往此应用程序池中
Web
应用程序的
HTTP
请求将收到“
503
服务不可用”的响应信息。
图
8
‑
7
展示了一台
Web
服务器上正在运行的应用程序池。
<shapetype id="_x0000_t75" coordsize="21600,21600" o:preferrelative="t" o:spt="75" filled="f" stroked="f" path=" m@4@5 l@4@11@9@11@9@5 xe"><stroke joinstyle="miter"><formulas><f eqn="if lineDrawn pixelLineWidth 0"><f eqn="sum @0 1 0"><f eqn="sum 0 0 @1"><f eqn="prod @2 1 2"><f eqn="prod @3 21600 pixelWidth"><f eqn="prod @3 21600 pixelHeight"><f eqn="sum @0 0 1"><f eqn="prod @6 1 2"><f eqn="prod @7 21600 pixelWidth"><f eqn="sum @8 21600 0"><f eqn="prod @7 21600 pixelHeight"><f eqn="sum @10 21600 0"></f><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"><lock aspectratio="t" v:ext="edit"></lock><shape id="图片_x0020_2" style="visibility: visible; width: 415.5pt; height: 152.25pt;" type="#_x0000_t75" o:spid="_x0000_i1025"><imagedata o:title="" src="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.png"></imagedata></shape></path></f></f></f></f></f></f></f></f></f></f></f></formulas></stroke></shapetype>
图
8
‑
7
IIS 7
中的应用程序池
如
图
8
‑
7
所示,本台
Web
服务器上的设置了
3
个应用程序池,每个应用程序池中可运行多个
Web
应用程序,图中
DefaultAppPool
这一应用程序池运行了
5
个
Web
应用程序。每个应用程序池都可以加载特定版本的
.NET Framework
,以对
ASP.NET
应用程序提供支持。在
IIS 7
中,应用程序池有两种运行模式——
经典模式和集成模式
。
经典模式下,
IIS7
应用程序池运行方式同
IIS 6 [1]
。
集成模式下,
IIS 7
直接预装载
.NET Framework
,从而为
ASP.NET
应用程序提供了更好的性能。
在
IIS
管理器中可以随时启动和停止某个应用程序池。
Windows Server
上运行应用程序池的系统帐号是“
NetworkService
”。在后面的章节中可以看到在部署
ASP.NET
网站时往往需要给此帐号设置特定的权限(比如允许
ASP.NET
应用程序向某文件夹中添加文件)。
下面深入介绍一下
IIS
的系统架构以及
Windows Server
是如何响应
HTTP
请求的。
8.1.3 IIS的系统架构
IIS 6
(运行于
Windows 2003 Server
)的架构如
图
8
‑
8
所示。
<shape id="_x0000_i1026" style="width: 415.5pt; height: 192.75pt;" o:ole="" type="#_x0000_t75" coordsize="21600,21600"><imagedata o:title="" src="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image002.emz"></imagedata></shape>
图
8
‑
8
IIS 6
的架构
从
图
8
‑
8
中可以看到,
IIS 6
架构由以下几个部分组成:
(1)HTTP.SYS
:运行于
Windows
核心(
Kernel
)的一个组件,它负责侦听(
Listen
)来自于外部的
HTTP
请求(通常来自网络中另一台计算机上的浏览器),根据请求的
URL
将其转发给相应的应用程序池,由运行于应用程序池中的工作者进程来响应此
HTTP
请求。当此
HTTP
请求处理完成时,它又负责将处理结果发送出去(其接收者通常为发出
HTTP
请求的浏览器)。
为了提供更好的性能,
HTTP.SYS
内部建立了一个缓冲区,将最近的
HTTP
请求处理结果保存起来,如果发现某个
HTTP
请求“不久以前”处理过了(即在缓冲区中可以找到),它就简单地直接从缓冲区中取出这些结果发回给客户端(通常为发出
HTTP
请求的浏览器)。
(2)InetInfo
:在
IIS 5
时代,
InetInfo
是
IIS
服务的主进程,在
IIS 6
中,它不再负责处理
HTTP
请求,但它继续负责管理除了
WWW
服务之外的其他互联网服务,比如用于文件传输的
FTP
服务和用于邮件收发的
SMTP
服务。
InetInfo
内部维护了一个元数据库(
Metabase
),在这个数据库中存入了一些重要的信息,这些信息对于维护各种互联网服务(比如
WWW
和
FTP
)等是必不可少的。
(3)Worker Process
:负责处理
HTTP
请求,被译为“
工作者进程
”,事实上,它是由一个可执行程序
W3WP.EXE
运行时所生成的一个进程[2]
,
每一个工作者进程内部都可以管理一个或多个
ASP.NET
应用程序。
工作者进程运行于一个应用程序池(
Application Pool
)中。
IIS 6
可以创建多个应用程序池,并指定某个
ASP.NET
应用程序在特定的应用程序池中运行(
图
8
‑
9
)。
<shape id="_x0000_i1027" style="visibility: visible; width: 282.75pt; height: 261pt;" type="#_x0000_t75" alt="IIS1"><imagedata o:title="IIS1" src="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image003.jpg"></imagedata></shape>
图
8
‑
9
设定
ASP.NET
网站所属的应用程序池(图截自
Windows 2003 Server
)
一般情况下,一个应用程序池只有一个工作者进程,但也可通过配置必要的参数让多个工作者进程同时运行在同一个应用程序池中,在这种情况下,这个应用程序池被称为“
Web Garden
(
Web
园)
”。
(4)WAS
(
Web Admin Service
)
:这是一个监控程序,它一方面可以存取放在
InetInfo
元数据库(
Metabase
)中的各种信息,另一方面也负责监控应用程序池(
Application Pool
)中的工作者进程的工作状态况,必要时它会关闭一个老的工作者进程并创建一个新的取而代之。
IIS架构与HTTP请求处理流程(2)