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


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

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

Примечание.

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

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

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

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

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

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

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

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

Параметр Описание
address URL-адрес службы.
binding Имя раздела привязки из конфигурации приложения.
bindingConfiguration Именованный экземпляр привязки из именованного раздела привязки.
contract Идентификатор интерфейса (IID), представляющий контракт службы или имя контракта (из MEX).
wsdl Документ WSDL, обеспечивающий альтернативную форму определения контракта.
spnIdentity Идентификатор имени участника на уровне сервера (SPN), который должен использоваться для взаимодействия со службой.
upnIdentity Идентификатор имени участника-пользователя (UPN), который должен использоваться для взаимодействия со службой.
dnsIdentity Идентификатор DNS, который должен использоваться для взаимодействия со службой.
mexAddress URL-адрес конечной точки службы для обмена метаданными (MEX).
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 может потребоваться файл конфигурации, чтобы обеспечить загрузку надлежащей версии .NET Framework. Например, при использовании 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>

См. также