Общие сведения об интеграции с приложениями 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. Для этого требуются локальное, видимое для модели COM определение контракта веб-службы WCF и привязка, которая должна использоваться. Подобно другим клиентам 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). |
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= https://schemas.microsoft.com/.NetConfiguration/v2.0 >
<startup>
<requiredRuntime version="v2.0.50727" />
</startup>
</configuration>
|