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服务器上正在运行的应用程序池。
![应用程序池](http://p.blog.csdn.net/images/p_blog_csdn_net/bitfan/EntryImages/20080928/Snap1633581909090237500.jpg)
<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所示。
![IIS 6架构](http://p.blog.csdn.net/images/p_blog_csdn_net/bitfan/EntryImages/20080928/Snap2633581909090862500.jpg)
<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)。
![设定程序池](http://p.blog.csdn.net/images/p_blog_csdn_net/bitfan/EntryImages/20080928/Snap3633581909091487500.jpg)
<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)中的工作者进程的工作状态况,必要时它会关闭一个老的工作者进程并创建一个新的取而代之。
分享到:
相关推荐
IIS5、IIS6、IIS7在处理ASP.NET请求时的工作流程有所不同,这主要体现在对请求的分发、处理以及资源管理等方面。 **IIS5的ASP.NET请求处理过程** 在IIS5中,ASP.NET请求处理的关键在于ISAPI(Internet Server ...
ASP.NET架构与安全机制之Http请求处理涉及到Web应用程序的核心运行机制和安全性措施。在这个主题中,我们将深入探讨ASP.NET框架如何处理HTTP请求,以及在安全方面如何确保用户身份验证和授权。 首先,让我们理解...
为了提高性能,IIS 7.0允许开发者进行内核级别的自定义开发,通过优化请求处理流程来提升服务器响应速度。此外,IIS 7.0还提供了一系列强大的诊断和纠错工具,帮助管理员监控服务器性能,定位并解决潜在问题。例如,...
在IIS6中,请求的处理流程如下: 1. **请求处理**:所有HTTP请求首先被HTTP.sys驱动程序捕获,然后根据Metabase(IIS的元数据库)查找请求对应的应用程序池。如果应用池不存在,IIS会自动创建。 2. **应用程序池与...
在IIS6中,请求处理流程有所不同。InetInfo.exe负责监听和分发请求到Work Process,而在IIS7及更高版本中,请求处理模型进行了重大改进,采用了更模块化的设计,允许更细粒度的控制和更高的性能。 总结来说,IIS...
2. 如果请求的目标是一个.aspx文件,IIS会识别到这一点,并调用aspnet_isapi.dll这个ISAPI(Internet Server Application Programming Interface)扩展来处理请求,而不是直接处理.aspx文件。 3. aspnet_isapi.dll...
SOA架构是基于服务的架构,它可以帮助企业更好地管理和整合业务流程、系统和数据资源。携程旅行网作为国内领先的综合性旅行服务公司,面临着日益复杂的业务流程和系统架构问题。为了解决这些问题,携程旅行网进行了...
在这个架构中,Web Server作为前端代理,负责接收来自Internet的请求,将静态内容直接返回,动态请求转发给App Server处理。App Server通过内部网络与DB Server通信,获取或更新数据。这样的设计既保证了系统的安全...
**IIS**:IIS是Windows操作系统上的一个内置Web服务器,它接收HTTP请求并处理这些请求。当一个用户通过浏览器请求一个ASP.NET应用时,IIS首先接收到这个请求。 **ISAPI**:ISAPI是一种扩展接口,允许开发者创建与...
这表明系统的后端开发采用了微软的技术栈,Windows Server提供了服务器环境,IIS用于处理HTTP请求,SQL Server则作为数据存储和管理的核心。ASP.NET是.NET框架的一部分,用于构建动态web应用程序,它支持C#等编程...
研发流程需要考虑设计思想、技术实现、任务安排、进度控制、版本控制、需求控制、后期规划等方面,架构师需要具备良好的研发流程设计能力和经验。 24. 列举你做过的几个大型或超大型系统,而且描绘其特色; 架构师...
这包括了解IIS如何处理HTTP请求,如何托管Web应用程序,以及如何与其他服务如FTP、SMTP等集成。 IIS 6.0的架构设计是一个关键的安全要素。它采用了进程隔离技术,每个应用程序池都有独立的W3WP.EXE进程,以防止一个...
在架构上,Web服务器通常包括前端处理模块、请求路由模块、应用处理模块和静态资源服务模块等。 2. **IIS(Internet Information Services)服务**: IIS是Microsoft提供的一个全面的、集成了多种网络服务的Web...
11. **Tomcat Valve**:Valve是Tomcat4引入的概念,允许将自定义的Java类插入到Catalina容器的请求处理流程中,实现对请求的拦截和定制处理。常见的Valve包括访问日志记录、远程地址过滤等。 12. **Servlet生命周期...
【并发用户数】是Web服务器在特定时间内处理请求时建立的HTTP连接数或处理线程数,它与【在线用户】有关,一个在线用户通常对应一个Session。当思考时间为零时,并发用户数等于在线用户数。 Web应用系统的【技术...
ASP应用在IIS环境下,可以处理HTTP请求,并返回动态生成的HTML内容。 四、设计特点 1. 简约风格:网站的设计理念是“因为信任,所以简单”。这体现在界面设计上,采用了简洁大气的布局,使得用户能够快速找到所需...
- 客户机/服务器(C/S)架构:在Web应用出现前,C/S架构是主流,用户通过客户端程序与服务器交互,但部署和维护成本较高。 - 浏览器/服务器(B/S)架构:随着互联网的发展,B/S架构简化了应用部署,用户仅需浏览器...
- **ASP.NET工作原理**:当用户请求一个ASP.NET页面时,IIS(Internet Information Services)服务器接收请求并处理,然后将结果返回给客户端。 - **ASP.NET的发布**:发布过程包括编译ASP.NET应用程序,将其转换...
2. 如果请求是.aspx文件,服务器会通过SDK框架进一步处理,这涉及到.NET Framework的运行时环境。 3. 数据库交互通过ADO.NET进行,它提供了与SQL Server 2000的高效连接,允许快速读写数据。 4. ASP.NET页面与数据库...