ASMX2.0、WSE3.0和WCF问题解答(二)
Microsoft® .NET Framework 2.0 版通过几个有趣但可能令人困惑的方式重塑了 Web 服务的前景。因此,本月我打算解答一些与 ASP.NET Web Services (ASMX) 2.0、Web Services Enhancements (WSE) 3.0 和 Windows® Communication Foundation (WCF)(WinFX® 的一部分)有关的最常见问题。
Microsoft® .NET Framework 2.0 版通过几个有趣但可能令人困惑的方式重塑了 Web 服务的前景。因此,本月我打算解答一些与 ASP.NET Web Services (ASMX) 2.0、Web Services Enhancements (WSE) 3.0 和 Windows® Communication Foundation (WCF)(WinFX® 的一部分)有关的最常见问题。(查看本文第一部分)
问:何时应该将 WSE 与 ASMX 结合使用,何时应该单独使用 ASMX?我希望将这个问题弄得更清楚些。
答:ASMX 2.0 支持 WS-I Basic Profile 1.1 和 SOAP 1.2。这意味着,它支持 XML 1.0、XML 架构定义 (XSD)、Web 服务描述语言 (WSDL)、SOAP 1.1、SOAP 1.2 以及编译时的基本配置文件一致性验证。WSE 3.0 通过提供对某些更高级的 WS-* 协议的支持,来补充 ASMX 2.0 的功能。目前,当您需要使用以下一个或多个功能来增强 ASMX 服务时,通常会使用 WSE 3.0:
- •基于消息的安全性 (WS-Security)
- •高效的二进制数据传输 (MTOM)
- •可选的宿主环境
- •自定义声明性策略管道
基于消息的安全性和 MTOM 是人们在 ASMX 项目中启用 WSE 的两个主要原因。还有一个好消息是,您不必修改服务逻辑就可以这样做。WSE 3.0 通过 ASMX 提供的扩展点来利用 ASMX。这使您能够利用各种 WSE 3.0 功能,而不必学习新的编程模型 — 您需要做的就是运行 WSE 设置工具并选择所需的选项。
在 ASMX 项目中启用 WSE 3.0 的另一个原因是,要利用它的策略管道扩展性模型。WSE 使您能够插入对进入和离开终结点的 SOAP 消息执行预处理和后续处理的筛选器。该扩展点比 ASMX SOAPExtension 框架更易于使用,因为它提供的功能可以创建能够与 WSE 提供的现有声明性安全策略相结合的自定义声明性策略。您决定“启用”WSE 可能只是为了具有该扩展选项,或者至少是为了使用改进的 SOAP 消息诊断跟踪功能。
有了 WSE 2.0,大多数开发人员在需要进行自定义宿主时就抛弃了 ASMX。现在,WSE 3.0 使您能够执行 ASMX 类型的自定义宿主,这就更没有问题了。导致您单独使用 WSE 消息处理 API 的主要情况是,需要实现可选的消息交换模式,例如,双工通信、多播或发布/订阅情况。消息处理类 SOAPSender 和 SOAPReceiver 使您能够实现任何类型的高级消息处理模式。
- 本文关键词:

