第1章 WCF基础 1
什么是WCF 1
服务 2
服务的执行边界 3
WCF与位置透明度 4
地址 4
TCP地址 5
HTTP地址 6
IPC地址 6
MSMQ地址 6
WebSocket地址 7
UDP地址 7
契约 7
服务契约 8
托管 11
IIS托管 12
自托管 13
WAS托管 18
在IIS/WAS里自定义托管 18
选择宿主 19
绑定 20
常用绑定 21
选择绑定 22
其他绑定 23
使用绑定 25
终结点 25
以管理方式配置终结点 26
以编程方式配置终结点 30
默认终结点 31
Configure()方法 34
元数据交换 36
基于HTTP-GET的元数据 37
元数据交换终结点 40
元数据浏览器 46
行为配置的更多内容 48
客户端编程 49
生成代理 50
以管理方式配置客户端 54
以编程方式配置客户端 59
WCF提供的测试客户端 60
编程方式配置VS管理方式配置 62
配置策略 63
WCF体系结构 63
宿主体系结构 64
使用通道 65
InProcFactory类 67
传输会话层 70
传输会话与绑定 71
传输会话终止 71
可靠性 72
绑定、可靠性和有序消息 73
配置可靠性 73
必备有序传递 75
第2章 服务契约 77
操作重载 77
契约继承 79
客户端契约层级 80
服务契约分解与设计 84
契约分解 84
分解准则 86
契约查询 88
以编程方式处理元数据 88
第3章 数据契约 95
序列化 95
.NET序列化 96
WCF格式器 98
序列化的数据契约 100
数据契约特性 101
导入数据契约 104
数据契约与Serializable特性 106
推断数据契约 107
组合数据契约 109
数据契约事件 110
共享数据契约 112
数据契约层级 113
已知类型 114
服务已知类型 116
多个已知类型 117
配置已知类型 118
数据契约解析器 119
Objects与接口 129
数据契约等效性 131
序列化顺序 132
版本控制 134
新增成员 135
缺失成员 135
版本控制往返 139
数据契约分解与设计 141
数据契约设计 142
数据契约分解 142
操作分解 151
数据传输对象(DTO)模式 153
务实的模式使用 154
枚举 154
委托与数据契约 156
泛型 157
集合 160
具体集合类型 161
自定义集合 163
CollectionDataContract特性 163
引用集合 165
字典集合 165
第4章 实例管理 169
行为 169
单调服务 170
单调服务的优势 171
配置单调服务 172
单调服务与传输会话 173
设计单调服务 173
选择单调服务 176
会话服务 176
配置私有会话 176
会话与可靠性 181
会话ID 182
会话终止 183
单例服务 184
初始化单例服务 185
选择单例服务 188
操作分界 188
实例停止 190
配置为ReleaseInstanceMode.None 192
配置为ReleaseInstanceMode.BeforeCall 193
配置为ReleaseInstanceMode.AfterCall 193
配置为ReleaseInstanceMode.BeforeAndAfterCall 193
显式停止 194
使用实例停止 195
持久化服务 195
持久化服务与实例管理模式 196
实例ID与持久化存储区 196
显式实例ID 197
消息头里的实例ID 199
支持实例ID的上下文绑定 202
自动持久化行为 207
限流 213
配置限流 215
第5章 操作 221
请求/应答操作 221
单向操作 221
配置单向操作 222
单向操作与可靠性 223
单向操作与会话服务 223
单向操作和异常 224
回调操作 225
回调契约 226
客户端回调设置 227
服务端的回调调用 230
回调连接管理 233
双向代理与类型安全 235
双向通道工厂 238
回调契约层级 240
事件 241
流操作 245
I/O流 245
流操作与绑定 246
流操作与传输 247
第6章 错误 249
错误隔离和解耦 249
错误屏蔽 249
通道故障 250
错误传播 254
错误契约 256
错误调试 259
错误与回调 265
错误处理扩展 268
提供错误 269
处理错误 272
安装错误处理扩展 274
宿主与错误扩展 277
回调与错误扩展 280
第7章 事务 283
恢复的挑战 283
事务 284
事务资源 284
事务属性 285
事务管理 286
资源管理器 289
事务传播 289
事务流与绑定 289
事务流与操作契约 290
单调 292
事务协议与管理器 293
协议与绑定 293
事务管理器 294
事务管理器提升 296
Transaction类 297
环境事务 298
本地事务VS分布式事务 298
服务事务编程 299
设置环境事务 299
事务传播模式 301
投票与提交 308
事务隔离 311
事务超时 313
明确使用事务编程 314
TransactionScope类 314
事务流管理 316
非服务客户端 323
服务状态管理 324
事务边界 325
实例管理与事务 325
单调事务服务 326
会话事务服务 329
事务持久化服务 342
事务行为 344
事务单例服务 349
实例模式与事务 352
回调 353
回调事务模式 354
回调投票 356
使用事务型回调 356
第8章 并发管理 359
实例管理与并发 359
服务并发模式 360
ConcurrencyMode.Single 360
ConcurrencyMode.Multiple 361
ConcurrencyMode.Reentrant 364
实例与并发访问 366
单调服务 366
会话与单例服务 367
资源与服务 368
访问死锁 368
避免死锁 369
资源同步上下文 370
.NET同步上下文 370
UI同步上下文 373
服务同步上下文 378
托管在UI线程上 379
作为服务 384
UI线程与并发管理 387
自定义服务同步上下文 389
线程池同步化器 389
替换I/O完成线程池 394
线程关联性 395
优先级处理 397
回调与客户端安全 400
使用ConcurrencyMode.Single回调 401
使用ConcurrencyMode.Multiple回调 402
使用ConcurrencyMode.Reentrant回调 402
回调与同步上下文 403
回调与UI同步上下文 403
回调自定义上下文 406
异步调用 410
异步机制的需求 410
基于代理的异步调用 411
异步调用 413
轮询或等待完成 415
延续 417
单向异步调用 426
异步错误处理 430
异步调用与事务 433
同步与异步调用 433
异步服务操作 434
第9章 队列服务 455
无连接的服务与客户端 455
队列调用 456
队列调用架构 456
队列契约 457
配置与安装 458
事务 464
传递与回放 464
事务配置 466
非事务性队列 469
实例管理 469
单调队列服务 470
会话队列服务 471
单例服务 475
并发管理 476
限流 476
传送失败 477
死信队列 478
生存时间 478
配置死信队列 479
处理死信队列 480
回放失败 484
有害消息 485
有害消息处理 486
队列调用与连接调用 490
要求队列化 491
应答服务 492
设计应答服务契约 493
客户端编程 496
队列服务端编程 499
应答服务端编程 501
事务 502
HTTP桥 505
设计桥 505
事务配置 506
服务端配置 506
客户端配置 508
第10章 安全 511
验证 511
授权 512
传输安全 512
传输安全模式 513
传输安全模式配置 514
Transport安全和凭据 517
Message安全和凭据 517
身份标识管理 518
整体策略 518
场景驱动方法 519
Intranet应用场景 520
安全Intranet绑定 520
约束消息保护 526
身份验证 528
身份标识 530
安全调用上下文 531
模拟 533
授权 540
身份标识管理 545
回调 546
Internet应用场景 547
安全Internet绑定 547
消息保护 549
验证 553
使用Windows凭据 555
使用ASP.NET提供者 556
标识管理 564
B2B应用场景 565
保护B2B绑定 565
验证 566
授权 568
身份标识管理 569
宿主安全配置 570
匿名应用场景 570
确保匿名绑定的安全 571
验证 571
授权 571
标识管理 571
回调 572
无安全场景 572
无安全的绑定 572
验证 573
授权 573
标识管理 573
回调 573
场景总结 574
声明式安全框架 574
SecurityBehaviorAttribute 575
宿主端的声明式安全 582
客户端的声明式安全 583
安全审计 590
配置安全审计 591
声明式安全审计 593
第11章 Azure Service Fabric微服务平台 595
为什么需要Azure Service Fabric 595
集成平台 596
设计一致性 596
编程模型一致性 596
未来兼容 596
为Service Fabric作准备 598
ServiceModelEx.ServiceFabric 598
配置Service Fabric 599
IT运维 599
开发 600
两者兼备 601
编写Service Fabric 606
服务编程模型 606
可靠服务 607
可靠角色 614
状态管理 617
托管 623
客户端编程模型 624
建模Service Fabric 633
建模方法 633
建模可靠服务 635
建模可靠角色 637
建模托管宿主 645
测试 646
附录A 面向服务概述 653
附录B 消息头与上下文 665
附录C 服务发现 687
附录D 发布-订阅服务 741
附录E 通用拦截器 765
附录F WCF编码规范 781
附录G ServiceModelEx分类 793