元数据问题

本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用  Windows Communication Foundation (WCF) 来开发分布式应用程序。

.NET 远程处理基础结构需要使用适当的元数据,才能将一个应用程序域中的对象连接到另一个域中的对象。无论在何种情况下,客户端应用程序域都必须具有它要使用的远程对象的元数据。下面是需要牢记的一些重要问题:

  • 对于服务器激活的对象,包含该类型的程序集名称在客户端和服务器上都必须一致,类型名称也必须相同。这是因为,类型标识是由类型和程序集名称组合(包括程序集版本和任何强名称信息)决定的。

  • 对于客户端激活的对象,包含该类型的程序集名称在客户端和服务器上都必须一致,类型名称也必须相同。另外,客户端必须具有远程类型的实际实现,其所有成员的签名都必须与服务器实现上相应成员的签名完全相同。

9f33wzw5.note(zh-cn,VS.100).gif注意:
客户端实现不需要是服务器实现。如果不想让客户端访问服务器实现,可以生成一个满足上述所有要求的替身库,并使之包含引发 NotSupportedException 异常的无存根 (stubbed-out) 成员。Soapsuds 工具 (Soapsuds.exe) 可使用 SOAP 序列化为客户端完成此工作。对于任何已发布的引用封送类型,您可以使用任何信道执行此操作。

另请参见

概念

将 Soapsuds.exe 用于远程处理