Поделиться через


Общие сведения об интеграции с com-приложениями

Windows Communication Foundation (WCF) предоставляет разработчику управляемого кода широкие возможности для создания подключенных приложений. Однако если у вас есть существенные вложения в неуправляемый COM-код и вы не хотите переносить, вы по-прежнему можете интегрировать веб-службы WCF непосредственно в существующий код, используя моникер службы WCF. Моникер службы можно использовать в различных средах разработки на основе COM, таких как Office VBA, Visual Basic 6.0 или Visual C++ 6.0.

Замечание

Моникер службы использует канал коммуникации WCF для всех коммуникаций. Механизмы безопасности и идентификации для этого канала отличаются от используемых в стандартных прокси-серверах COM и DCOM. Кроме того, так как моникер службы использует канал связи WCF, период времени ожидания по умолчанию составляет одну минуту для всех вызовов.

Моникер службы используется с GetObject функцией для предоставления разработчикам неуправляемого кода строго типизированного, конкретного для COM подхода к вызову веб-служб WCF. Для этого требуется локальное, COM-видимое определение контракта веб-службы WCF (Windows Communication Foundation) и используемой привязки. Как и другие клиенты WCF, моникер службы должен создать типизированный канал в службу, хотя построение канала происходит прозрачно для COM-программиста при первом вызове метода.

Как и другие клиенты WCF, при использовании моникера приложения указывают адрес, привязку и контракт для взаимодействия со службой. Контракт можно указать одним из следующих способов:

  • Типизированный контракт — контракт регистрируется как видимый тип COM на клиентском компьютере.

  • Контракт WSDL — контракт предоставляется в виде документа WSDL.

  • Контракт MEX — контракт извлекается во время выполнения из конечной точки обмена метаданными (MEX).

Параметры, поддерживаемые Моникером службы

В следующей таблице показаны параметры, поддерживаемые моникером службы.

Параметр Описание
address Местоположение URL-адреса службы.
binding Имя раздела, привязанного к конфигурации приложения.
bindingConfiguration Именованный экземпляр привязки из раздела с именованной привязкой.
contract Идентификатор интерфейса (IID), представляющий контракт службы или имя контракта (из MEX).
wsdl Документ WSDL, предоставляющий альтернативную форму определения контракта.
spnIdentity Имя субъекта-сервера (SPN), используемое для взаимодействия со службой.
upnIdentity Удостоверение субъекта-пользователя (UPN), используемое для обмена данными со службой.
dnsIdentity DNS-идентификатор, используемый для взаимодействия со службой.
mexAddress Адрес URL конечной точки метаданных (MEX) службы Exchange.
mexBinding Имя раздела привязки из конфигурации приложения для подключения к конечной точке MEX.
mexBindingConfiguration Именованный экземпляр привязки из именованного раздела привязки для подключения к конечной точке MEX.
bindingNamespace Пространство имен имени раздела связывания из полученного файла MEX.
contractNamespace Пространство имен контракта из полученного MEX.
mexSpnIdentity Идентичность имени субъекта сервера (SPN), используемая для взаимодействия с конечной точкой MEX.
mexUpnIdentity Идентификатор пользователя (UPN), используемый для взаимодействия с конечной точкой MEX.
mexDnsIdentity Идентификатор DNS для использования при взаимодействии с конечной точкой MEX.
serializer Укажите использование сериализатора xml или datacontract.

Замечание

Даже если используется с полностью COM-клиентами, идентификатор службы требует установки WCF и .NET Framework 2.0 на клиентском компьютере. Также важно, чтобы клиентские приложения, использующие моникер службы, загружали соответствующую версию среды выполнения .NET Framework. При использовании моникера в приложениях Office может потребоваться файл конфигурации, чтобы убедиться, что загружена правильная версия платформы. Например, при использовании Excel следующий текст должен быть помещен в файл с именем Excel.exe.config в том же каталоге, что и файл Excel.exe:

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

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

<startup>

<requiredRuntime version="v2.0.50727" />

</startup>

</configuration>

См. также