图书目录

目    录

第Ⅰ部分  引言及部署

第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 Server 2008

过程中同时安装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 Deployment Services安装 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

第Ⅱ部分  管    理

第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  修改applicationHost.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

第Ⅲ部分  高 级 管 理

第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

第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