与 COM 应用程序集成概述

Windows Communication Foundation (WCF)为托管代码开发人员提供了用于创建连接的应用程序的丰富环境。 但是,如果对基于非托管 COM 的代码进行大量投资,并且不想迁移,则仍然可以使用 WCF 服务名字对象将 WCF Web 服务直接集成到现有代码中。 服务标识符可用于各种基于 COM 的开发环境,例如 Office VBA、Visual Basic 6.0 或 Visual C++ 6.0。

注释

服务标记使用 WCF 信道进行所有通信。 该通道的安全和标识机制不同于标准 COM 和 DCOM 代理中使用的机制。 此外,由于服务标识使用了 WCF 通信信道,因此所有调用的默认超时时间为一分钟。

服务标记与 GetObject 函数一起使用,为非托管开发人员提供强类型的、特定于 COM 的方法,用于调用 WCF Web 服务。 这需要 WCF Web 服务协定的本地 COM 可见定义和要使用的绑定。 与其他 WCF 客户端一样,服务标识符必须创建与服务的类型化通道,但在第一次方法调用时,这种通道构建对 COM 程序员是透明的。

与其他 WCF 客户端类似,使用 moniker 时,应用程序会指定与服务通信的地址、绑定和合约。 可以通过以下方式之一指定合同:

  • 类型化契约 – 契约在客户端计算机上注册为 COM 可见类型。

  • WSDL 协定 – 协定以 WSDL 文档的形式提供。

  • MEX 协定 - 在运行时从元数据交换 (MEX) 终结点检索协定。

服务标记支持的参数

下表显示了服务标识符支持的参数。

参数 DESCRIPTION
address 服务的 URL 位置。
binding 应用程序配置中的绑定节名。
bindingConfiguration 命名绑定节中的命名绑定实例。
contract 接口标识符(IID),表示服务协定或协定名称(来自 MEX)。
wsdl 提供替代形式的协定定义的 WSDL 文档。
spnIdentity 用于与服务通信的服务器主体名称 (SPN) 标识。
upnIdentity 用于与服务通信的用户主体名称 (UPN) 标识。
dnsIdentity 用于与服务通信的 DNS 标识。
mexAddress 服务的元数据交换 (MEX) 终结点的 URL 位置。
mexBinding 应用程序配置中用于与 MEX 终结点连接的绑定节名。
mexBindingConfiguration 命名绑定节中用于与 MEX 终结点连接的命名绑定实例。
bindingNamespace 检索的 MEX 中绑定节名的命名空间。
contractNamespace 检索的 MEX 中协定的命名空间。
mexSpnIdentity 用于与 MEX 终结点通信的服务器主体名称 (SPN) 标识。
mexUpnIdentity 用于与 MEX 终结点通信的用户主体名称 (UPN) 标识。
mexDnsIdentity 用于与 MEX 终结点通信的 DNS 标识。
serializer 指定“xml”或“datacontract”序列化程序的用法。

注释

即使与完全基于 COM 的客户端一起使用,服务标识符也需要在客户端计算机上安装 WCF 和 .NET Framework 2.0。 使用服务标记的客户端应用程序加载 .NET Framework 运行时的适当版本也很关键。 在 Office 应用程序中使用名字对象时,可能需要配置文件以确保加载正确的框架版本。 例如,使用 Excel 时,应将以下文本放置在与 Excel.exe 文件相同的目录中名为 Excel.exe.config 的文件中:

<?xml version="1.0" encoding="utf-8"?>

<configuration xmlns= http://schemas.microsoft.com/.NetConfiguration/v2.0 >

<startup>

<requiredRuntime version="v2.0.50727" />

</startup>

</configuration>

另请参阅