第Ⅰ部分 引言及部署 3
第1章 IIS背景知识及IIS 7.0的新特性 3
1.1从IIS 1.0到IIS 4.0 3
1.2 IIS 5.0和IIS 5.1 4
1.3 IIS 6.0 4
1.3.1默认的安全性 5
1.3.2处理请求 5
1.3.3附加特性 6
1.4 IIS 7.0 7
1.5 IIS 7.0的特性 9
1.5.1集成的请求管道 9
1.5.2可配置性 12
1.5.3组件化 14
1.5.4安全性 15
1.5.5 IIS管理工具 21
1.5.6诊断 24
1.5.7兼容性 26
1.5.8附加功能 26
1.6本章小结 27
第2章 IIS 7.0的架构 29
2.1 IIS 4.0以及更早版本的IIS 29
2.1.1 Inetinfo.exe 30
2.1.2 ISAPI与CGI的比较 31
2.1.3 Active Server Page 32
2.2 IIS 5.0 32
2.3 IIS 6.0 33
2.3.1 Http.sys 33
2.3.2 IIS Admin Service 35
2.3.3 Web Administration Service 35
2.3.4工作进程 35
2.3.5应用程序池 36
2.4 IIS 7.0的架构 38
2.4.1集成管道模式 38
2.4.2可扩展性和模块化 41
2.4.3 IIS Manager的可扩展性 42
2.4.4 Metabase——走吧!走吧!走了 42
2.4.5 WAS和工作进程 45
2.5 Windows Server 2008的架构 46
2.5.1 Server Core安装选项 46
2.5.2虚拟化 47
2.5.3故障转移群集功能 48
2.5.4 WCF 48
2.5.5 BitLocker加密技术 48
2.5.6网络访问保护 49
2.6本章小结 49
第3章 规划IIS 7.0的部署 51
3.1 Windows 2008 Server的部署规划 51
3.1.1 Windows Server 2008对硬件的要求 52
3.1.2 32位系统还是64位系统 53
3.1.3使用哪个Server版本的操作系统 53
3.1.4升级还是全新安装 57
3.1.5规划硬件 58
3.1.6规划网络 60
3.1.7规划安全性 66
3.1.8规划备份和恢复 71
3.2规划IIS 7.0部署 73
3.2.1 IIS 7.0的需求 73
3.2.2安装决策 73
3.2.3规划与IIS有关的安全性 74
3.2.4规划开发环境 76
3.2.5规划生产环境 77
3.2.6共享配置 77
3.2.7内容复制 78
3.3应用程序部署规划 78
3.4自动化及部署工具 79
3.4.1 Windows Deployment Services 79
3.4.2批量激活 80
3.5系统能力规划 80
3.5.1流量 81
3.5.2 WCAT 82
3.5.3 IIS 7.0请求跟踪 82
3.5.4可伸缩性 83
3.5.5规划应用程序的能力 83
3.6本章小结 84
第4章 安装IIS 7.0 85
4.1全新安装 85
4.1.1在安装Windows Server2008过程中同时安装IIS 7.0 86
4.1.2通过DVD驱动器在一台现有的服务器上安装IIS 7.0 92
4.2升级安装 97
4.2.1就地升级 98
4.2.2迁移升级 104
4.3为现有安装添加新特性 104
4.3.1安装新特性 104
4.3.2配置和测试新特性 105
4.3.3在IIS 7.0上运行ASP.NET 1.1 107
4.4自动安装及配置 111
4.5从命令行安装Server Core 111
4.5.1 Pkgmgr.exe 112
4.5.2使用pkgmgr.exe进行无人值守安装 113
4.5.3使用Windows DeploymentServices安装 116
4.6主机托管服务建议 117
4.6.1目录结构 118
4.6.2 Web服务器账号和应用程序池 120
4.6.3使用托管代码配置共享主机 121
4.7共享的配置 128
4.8在Windows Vista平台上安装IIS 7.0 130
4.8.1 IIS 7.0支持的Vista版本 131
4.8.2安装IIS 7.0 131
4.9本章小结 132
第Ⅱ部分 管理 135
第5章 管理工具 135
5.1主要特点 135
5.2 IIS Manager 136
5.2.1 IIS Manager的外观 136
5.2.2特性内容 137
5.2.3 Features View 138
5.2.4 Content View 141
5.2.5特性委托 141
5.3 IIS Manager的可扩展性 142
5.4与配置有关的设置 142
5.4.1配置文件的层次结构 142
5.4.2配置的级别 143
5.4.3 Location标记 144
5.4.4配置文件的结构 145
5.4.5配置架构 146
5.4.6对节进行锁定和解锁 148
5.5通过使用命令行完成管理工作 150
5.5.1使用AppCmd.exe 151
5.5.2获取帮助 151
5.5.3使用list命令 155
5.5.4 AppCmd.exe操作属性和属性值 158
5.5.5使用add、delete和set管理对象 158
5.5.6判断哪个属性与对象进行了关联 159
5.5.7备份与恢复 162
5.5.8对配置进行加锁和解锁 170
5.5.9使用管道传送XML数据 170
5.6 Web管理服务和远程管理 171
5.7本章小结 171
第6章Web网站管理 173
6.1 Web网站、应用程序和虚拟目录 173
6.1.1 Web网站 174
6.1.2应用程序 174
6.1.3虚拟目录 175
6.2新建Web网站 175
6.2.1使用IIS Manager新建Web网站 175
6.2.2为网站新建应用程序池 177
6.2.3使用AppCmd创建Web网站 179
6.2.4使用Microsoft.Web.Administration创建Web网站 181
6.2.5修改app licationHost.config文件 183
6.3配置日志 184
6.4配置主机头 191
6.4.1使用 IIS Manager添加/删除主机头 193
6.4.2使用AppCmd设置主机头 193
6.4.3使用Microsoft.Web.Administration设置主机头 194
6.4.4 SSL和主机头 196
6.5管理应用程序 196
6.5.1使用IIS Manager添加应用程序 196
6.5.2使用AppCmd添加应用程序 197
6.5.3使用Microsoft.Web.Administration添加应用程序 198
6.5.4使用IIS Manager删除应用程序 198
6.5.5使用AppCmd删除应用程序 198
6.5.6使用Microsoft.Web.Administration删除应用程序 199
6.6管理虚拟目录 199
6.6.1使用IIS Manager创建虚拟目录 199
6.6.2使用 AppCmd创建虚拟目录 201
6.6.3使用Microsoft.Web.Administration创建虚拟目录 201
6.6.4删除虚拟目录 202
6.7身份验证 203
6.8配置压缩 203
6.8.1使用IIS Manager配置压缩 204
6.8.2使用AppCmd.exe配置压缩 204
6.9配置默认文档 205
6.10配置MIME设置 206
6.10.1添加MIME类型 207
6.10.2编辑MIME类型 208
6.10.3删除MIME类型 208
6.11基本管理任务 209
6.11.1为IIS配置默认选项 209
6.11.2启动和停止服务,以及启动和停止Web网站 210
6.11.3启用动态内容——ASP.NET和Classic ASP 211
6.11.4隔离应用程序 211
6.12本章小结 211
第7章 Web应用程序管理 213
7.1应用程序管理 213
7.2 ASP 213
7.3 ASP.NET 214
7.3.1 IIS 6.0及先前版本的IIS的架构 214
7.3.2 IIS 7.0的架构 215
7.3.3 IIS 7.0和ASP.NET模块 216
7.4 ISAPI 228
7.5 CGI 229
7.6 FastCGI 229
7.6.1安装PHP 230
7.6.2安装QDig 230
7.6.3安装FastCGI模块 230
7.6.4为使用PHP而启用FastCGI 231
7.7 Windows进程激活服务 231
7.8本章小结 232
第8章 Web应用程序池管理 233
8.1隔离网站的背景知识 233
8.2定义应用程序 234
8.3比较虚拟目录和应用程序 236
8.4深入理解w3wp.exe进程 238
8.4.1回收应用程序池 239
8.4.2 Web Garden 241
8.5使用应用程序池 242
8.5.1创建应用程序池 243
8.5.2管理设置 244
8.5.3为应用程序池指派应用程序及网站 248
8.5.4确定.NET Framework的版本 253
8.5.5确定托管的管道模式 254
8.5.6管理活动应用程序池 258
8.6应用程序池的安全性 264
8.6.1应用程序池配置隔离 264
8.6.2应用程序池SID注入 265
8.6.3网站匿名用户 265
8.7值得一提的高级设置 266
8.7.1位数 267
8.7.2 CPU限制 267
8.7.3处理器关联 268
8.8应用程序池用户 268
8.8.1 Network Service账号 269
8.8.2 Local Service账号 269
8.8.3 Local System账号 270
8.8.4自定义的用户账号 270
8.9本章小结 271
第9章 委托远程管理 273
9.1主要特点 273
9.1.1服务器管理员 274
9.1.2网站管理员 274
9.1.3服务器管理员与网站管理员应该合二为一 275
9.2远程访问IIS Manager 275
9.2.1安装IIS 7.0 Management Service 275
9.2.2开启远程连接 276
9.2.3身份验证类型 280
9.2.4在3个级别上进行授权 284
9.2.5远程安装及使用 285
9.2.6扩展IIS Manager 287
9.3委托设置 288
9.3.1委托节 288
9.3.2委托细节 307
9.4本章小结 312
第10章 配置其他服务 313
10.1 FTP发行版 314
10.1.1 FTP基础知识 314
10.1.2自动创建FTP站点和FTP站点管理自动化 325
10.1.3 FTP命令行客户端 327
10.2 FTP 7 328
10.2.1安装FTP 7 329
10.2.2新建FTP 7站点 329
10.2.3在现有的Web网站中添加FTP 7站点 331
10.2.4配置FTP 7安全性 332
10.2.5使用SSL配置FTP 7 335
10.2.6配置FTP 7的用户隔离 338
10.2.7配置FTP 7主机名支持 339
10.2.8使用配置文件管理FTP 7 340
10.3 FrontPage服务器扩展 345
10.3.1安装FPSE 346
10.3.2为Web网站添加FPSE 347
10.3.3配置FPSE 350
10.3.4确保进行了FPSE扩展的Web网站的安全 352
10.3.5使用客户端连接 354
10.3.6卸载FPSE 355
10.4 SMTP 355
10.4.1 SMTP的内部工作机制 355
10.4.2安装SMTP 356
10.4.3配置默认的SMTP服务器 357
10.4.4 SMTP的安全性和身份验证 362
10.4.5配置附加域 365
10.4.6 SMTP文件夹 366
10.4.7对SMTP进行测试和错误定位 367
10.5 LogParser 370
10.6本章小结 374
第Ⅲ部分 高级管理 379
第11章 Core Server 379
11.1背景 379
11.2 Core Server和模块 380
11.3定制服务器负载 388
11.3.1清除负载 388
11.3.2一个简单的实例 389
11.3.3一个稍复杂的实例 390
11.3.4针对单个Web网站进行定制 392
11.3.5使用IIS Manager完成定制工作 395
11.4 ASP.NET和IIS管道 397
11.4.1配置ASP.NET执行模式 399
11.4.2将遗留的ASP.NET应用程序迁移到IIS 7.0中 400
11.4.3选择ASP.NET的版本 401
11.5对遗留的ISAPI的支持 401
11.6本章小结 402
第12章 Core Server的可扩展性 403
12.1可扩展性概览 403
12.2 IIS的模块概念 404
12.2.1事件 404
12.2.2通知 406
12.2.3返回的编码 407
12.2.4通知的优先级 408
12.3一个本机模块示例 409
12.3.1本机模块设计 410
12.3.2创建本机模块 410
12.3.3完成本机模块开发 420
12.4托管代码模块 421
12.4.1托管事件通知 422
12.4.2补充阅读材料 423
12.5一个托管模块的示例 423
12.5.1托管模块设计 423
12.5.2创建托管模块 423
12.5.3完成托管模块开发 428
12.6模块事件跟踪 429
12.7扩展IIS的配置 435
12.8扩展IIS管理工具 439
12.9本章小结 449
第13章 确保服务器的安全 451
13.1安全的定义 451
13.1.1管理风险 452
13.1.2安全组件 453
13.2攻击类型 453
13.2.1拒绝服务攻击 454
13.2.2权限升级攻击 454
13.2.3被动攻击 455
13.3确保服务器的安全 455
13.3.1确保环境的安全 456
13.3.2 IPsec 456
13.3.3 NAP 457
13.3.4 ADFS 458
13.4确保IIS 7.0的安全 460
13.4.1 IP和域名限制 460
13.4.2配置MIME类型扩展 465
13.4.3配置ISAPI扩展和CGI限制 466
13.4.4配置请求过滤 471
13.4.5应用程序层的安全 476
13.4.6配置日志 477
13.5本章小结 478
第14章 身份验证与授权 479
14.1 IIS 7.0中的身份验证机制 480
14.2配置Anonymous身份验证机制 483
14.3配置Basic身份验证机制 485
14.4配置Digest身份验证机制 488
14.5配置NTLM身份验证机制 492
14.6配置UNC身份验证机制 506
14.7配置客户端证书身份验证机制 507
14.8配置基于Forms的身份验证 510
14.9配置委托 513
14.10配置协议转换 517
14.11配置授权 519
14.11.1 URL授权 520
14.11.2配置应用程序池沙箱 523
14.12 IIS 7.0用户账号 524
14.13本章小结 526
第15章 SSL和TLS 527
15.1使用TLS确保Web网站的安全 528
15.1.1 SSL/TLS握手 528
15.1.2生成证书请求 531
15.1.3提交证书请求 536
15.1.4将证书导入IIS 7.0 538
15.1.5配置Web网站绑定 538
15.1.6使用域证书请求生成证书 539
15.1.7生成自签名证书 540
15.1.8管理使用SSL/TLS安全保护的Web网站 541
15.1.9管理PKI 544
15.2使用TLS确保SMTP虚拟服务器的安全 547
15.3使用TLS确保FTP站点的安全 549
15.4本章小结 552
第16章 配置Web Farms及Web Farms的负载平衡 553
16.1 IIS 7.0和Web Farm 553
16.2内容配置 570
16.2.1本地内容 570
16.2.2共享网络内容 572
16.2.3共享SAN内容 574
16.3内容复制 575
16.3.1分布式文件系统 576
16.3.2 Robocopy工具 579
16.3.3脱机文件夹 580
16.3.4附加的工具 582
16.3.5 Microsoft Web部署工具 582
16.4完全冗余 583
16.5负载平衡 584
16.5.1网络负载平衡器 584
16.5.2轮转DNS负载平衡 590
16.5.3第三方负载平衡工具 591
16.6其他考虑事项 592
16.6.1复制 592
16.6.2 .NET配置文件和machineKey 598
16.6.3会话状态 599
16.6.4安全性 605
16.7本章小结 606
第17章 可编程配置及管理 609
17.1直接配置 609
17.1.1配置文件层次结构 610
17.1.2操作顺序 611
17.1.3集合项 613
17.1.4配置节的结构 615
17.1.5 location标记 617
17.1.6继承 620
17.1.7锁定机制 621
17.1.8 childConfig属性和sourceConfig属性 622
17.1.9配置路径 623
17.1.10信息架构的可扩展性 624
17.2可编程配置 628
17.2.1第一个IIS 7.0编程示例 628
17.2.2 Microsoft.Web.Administration(MWA) 635
17.2.3 Microsoft.Web.Management(MWM) 642
17.2.4 ABO、ADSI以及对遗留API的支持 643
17.2.5 IIS 7.0 WMI提供程序 644
17.2.6 AHAdmin 650
17.3本章小结 652
第Ⅳ部分 管理和操作IIS 7.0 655
第18章 IIS及操作管理 655
18.1管理方法及原则 655
18.1.1 ITIL标准 656
18.1.2 MOF:微软公司提出的ITIL超集 657
18.1.3在IIS操作管理中应用MOF 661
18.2操作任务 673
18.3本章小结 680
第19章 监视及性能调优 681
19.1监视Web网站 681
19.1.1监视IIS 7.0的方式 682
19.1.2监视内容 696
19.2性能调优 703
19.2.1操作系统优化 704
19.2.2 IIS服务优化 708
19.2.3 Web网站优化 714
19.3本章小结 721
第20章 诊断与错误定位 723
20.1问题类型 723
20.1.1特定的错误 723
20.1.2挂起/超时问题 724
20.1.3资源紧张问题和运行缓慢问题 724
20.2运行时状态和控制API(RSCA) 725
20.2.1观察工作进程 726
20.2.2观察页面请求 729
20.2.3观察应用程序域 730
20.3 IIS 7.0错误页面 731
20.3.1定制Custom Error页面 733
20.3.2多语言支持 735
20.3.3 HTTP状态编码 735
20.3.4 FTP状态编码 736
20.4失败请求跟踪 736
20.4.1设置失败请求跟踪规则 737
20.4.2选择跟踪提供程序 739
20.4.3读取XML跟踪日志 740
20.5日志 741
20.6 ASP.NET跟踪 742
20.6.1启用ASP.NET跟踪 744
20.6.2 ASP.NET跟踪查看器 745
20.7错误定位技巧 748
20.7.1再现 748
20.7.2隔离 749
20.7.3改正错误 752
20.7.4测试 752
20.8附加的内置工具 752
20.8.1任务管理器 752
20.8.2事件查看器 753
20.8.3可靠性和性能监控器 756
20.8.4将NTFS错误记录到磁盘中 763
20.8.5 Ping/Tracert/Pingpath 765
20.8.6 Telnet 766
20.9可安装工具 767
20.9.1 IIS 6.0资源工具包 767
20.9.2 DelegConfig 773
20.9.3进程浏览器 773
20.9.4 IIS诊断工具包 775
20.9.5 ELMAH 776
20.9.6下一步工作 777
20.10本章小结 777
附录A 模块参考 779
附录B IIS状态编码 791
附录C 资源 797