Общие сведения об интеграции с приложениями 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>