.NET Compact Framework 中的消息处理

更新:2007 年 11 月

.NET Compact Framework 中实现的 Windows Communication Foundation (WCF) 的子集为构建面向消息的应用程序提供了一个统一的编程模型。借助这一模型,开发人员可以构建既能跨平台运行,又支持与桌面上现有的 WCF 服务交互的安全消息处理应用程序。

说明:

.NET Compact Framework 3.5 版 及更高版本都支持 WCF。

体系结构

.NET Compact Framework 的 WCF 消息处理层是基于标准桌面 WCF 体系结构建模的。该消息处理层受设备支持,并可使设备连接到桌面上现有的 WCF 服务。设备上不存在服务运行时层。

下面的插图显示了信道堆栈、关联的协议以及 WCF 绑定元素。

.NET Compact Framework 中的 WCF 消息处理层

.NET Compact Framework 中 WCF 的消息处理层

对 WS-Security 规范 1.0 版的支持包括使用 X.509 证书的 SOAP 邮件安全性。

Message 类基于 WS-Addressing 标准构建。

与桌面实现的差异

.NET Compact Framework 并不支持桌面上支持的整套协议和绑定。有关支持的特定协议和绑定的更多信息,请参见上一节中的体系结构关系图。

.NET Compact Framework 上不支持服务运行时层。因此,如果希望连接到桌面上现有的 WCF 服务,应注意下列事项:

  • 必须更改 Web.config 文件中的某些设置。有关更多信息,请参见如何:使用 HTTP 传输

  • 如果要添加对 System.ServiceModel 协定的设备支持,可以使用 .NET Compact Framework ServiceModel 实用工具 (NetCFSvcUtil.exe) 来生成 WCF 客户端代理。此工具可实现对 .NET Compact Framework 中很多协定参数的支持。NetCFSvcUtil.exe 包含在 Power Toy for .NET Compact Framework 中。有关更多信息,请参见 Power Toys for .NET Compact Framework

  • 如果不使用 NetCFSvcUtil,则可以使用 WCF ServiceModel 桌面实用工具 (SvcUtil.exe) 对生成的代码进行后续处理。在此情况下,必须从生成的代码中移除不受支持的 System.ServiceModel 属性。有关这些修改的更多信息及相应的示例,请参见如何:使用 HTTP 传输

此外,还支持整个 .NET Framework 中的 WCF 消息处理类型和成员的子集。

下一节介绍特定于 WCF 安全功能的差异。

安全性

.NET Compact Framework 中的 WCF 消息处理支持 SOAP 消息安全性,后者基于 X.509 证书,并对应于 WS-Security 功能的一个子集。WS-Security 是一个应用层,可以放置在任何受支持的传输层之上。WCF 消息传递中支持的安全绑定元素为 SecurityBindingElementAsymmetricSecurityBindingElement。若要实现安全功能,必须将 ClientCredentials 对象内的 X.509 证书作为参数传入 WCF 客户端代理的构造函数。

此外,.NET Compact Framework 中还支持 WCF 的传输级安全性。这包括对 HttpsTransportBindingElementBasicHttpSecurity 的支持。

与桌面上的 WCF 安全性实现相比,.NET Compact Framework 中的该实现在以下方面有所不同:

说明:

在延长的夏时制期间,如果启用了默认的时间戳验证期限(5 分钟),使用消息安全性的传出消息将因为时间戳验证错误而失败。延长的夏时制处于 3 月的第二个星期日与 4 月的第一个星期日之间,以及 10 月的最后一个星期日与 11 月的第一个星期日之间。若要解决此问题,请安装夏时制 (DST) 2007 更新。如果设备运行的是 Windows Mobile 5.0(内部版本号为 15096.3.0)及其更高版本或 Windows Mobile 6.0 及其更高版本,则不适用此操作。

部署

WCF 消息处理 DLL 用 .NET Compact Framework CAB 文件提供。托管程序集安装在全局程序集缓存中。

设备的 WCF 消息处理 DLL 包括:

  • System.ServiceModel.dll

  • System.Runtime.Serialization.dll

此部署过程还包括对 WCF Exchange Server 邮件传输的部署。有关设备部署和桌面部署的更多信息,请参见 WCF Exchange Server 邮件传输

日志记录

桌面 .NET Framework 上的 WCF 支持三种日志记录:跟踪、消息处理和事件日志记录。.NET Compact Framework 上的 WCF 只支持跟踪日志记录来跟踪代码异常,但它不记录警告和错误消息。注册表项用于配置日志记录。

若要记录 WCF 信息,必须先为 .NET Compact Framework 启用日志记录。有关如何启用日志记录以及如何启用 WCF 跟踪日志的更多信息,请参见如何:创建日志文件

请参见

概念

日志文件信息

其他资源

Windows Communication Foundation (WCF) 开发与 .NET Compact Framework