.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 消息处理层
对 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 消息传递中支持的安全绑定元素为 SecurityBindingElement 和 AsymmetricSecurityBindingElement。若要实现安全功能,必须将 ClientCredentials 对象内的 X.509 证书作为参数传入 WCF 客户端代理的构造函数。
此外,.NET Compact Framework 中还支持 WCF 的传输级安全性。这包括对 HttpsTransportBindingElement 和 BasicHttpSecurity 的支持。
与桌面上的 WCF 安全性实现相比,.NET Compact Framework 中的该实现在以下方面有所不同:
只支持 WS-Security 1.0 版的子集。
对于 SecurityAlgorithmSuite 类,由于存在操作系统约束,因此只支持 Basic256Rsa15 属性。
不能对消息头加密。
说明: |
---|
在延长的夏时制期间,如果启用了默认的时间戳验证期限(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