Integração com visão geral de aplicativos COM

O Windows Communication Foundation (WCF) fornece ao desenvolvedor de código gerenciado um ambiente avançado para criar aplicativos conectados. No entanto, se você tiver um investimento substancial em código baseado em COM não gerenciado e não quiser migrar, ainda poderá integrar os serviços da Web WCF diretamente em seu código existente usando o moniker de serviço WCF. O moniker de serviço pode ser usado a partir de uma ampla variedade de ambientes de desenvolvimento baseados em COM, como Office VBA, Visual Basic 6.0 ou Visual C++ 6.0.

Observação

O moniker de serviço usa um canal de comunicação WCF para todas as comunicações. Os mecanismos de segurança e identidade para esse canal diferem daqueles usados em proxies COM e DCOM padrão. Além disso, como o moniker de serviço usa um canal de comunicação WCF, o período de tempo limite padrão é de um minuto para todas as chamadas.

O moniker de serviço é usado com a função GetObject para fornecer ao desenvolvedor não gerenciado uma abordagem específica de COM fortemente tipada para chamar serviços Web WCF. Isso requer uma definição local, visível por COM, do contrato de serviço da Web WCF e a vinculação que deve ser usada. Como outros clientes WCF, o moniker de serviço deve construir um canal tipado para o serviço, embora essa construção de canal ocorra de forma transparente para o programador COM na primeira chamada de método.

Em comum com outros clientes WCF, ao usar o moniker, os aplicativos especificam o endereço, a ligação e o contrato para se comunicar com um serviço. O contrato pode ser especificado de uma das seguintes maneiras:

  • Contrato com tipo – o contrato é registrado como um tipo visível COM na máquina do cliente.

  • Contrato WSDL – o contrato é fornecido na forma de um documento WSDL.

  • Contrato MEX – o contrato é recuperado em tempo de execução de um ponto de extremidade Metadata Exchange (MEX).

Parâmetros suportados pelo moniker de serviço

A tabela a seguir mostra os parâmetros com suporte do moniker de serviço.

Parâmetro Descrição
address Localização da URL do serviço.
binding Nome da seção de ligação da configuração do aplicativo.
bindingConfiguration Instância de ligação nomeada de dentro da seção de ligação nomeada.
contract Identificador de interface (IID) que representa o contrato de serviço ou o nome do contrato (do MEX).
wsdl Documento WSDL que fornece uma forma alternativa de definição de contrato.
spnIdentity Identidade do nome principal do servidor (SPN) a ser usada para se comunicar com o serviço.
upnIdentity Identidade do nome principal do usuário (UPN) a ser usada para se comunicar com o serviço.
dnsIdentity Identidade DNS a ser usada para se comunicar com o serviço.
mexAddress Local da URL do ponto de extremidade do Metadata Exchange (MEX) do serviço.
mexBinding Nome da seção de ligação da configuração do aplicativo para se conectar ao terminal MEX.
mexBindingConfiguration Instância de ligação nomeada de dentro da seção de ligação nomeada para se conectar ao ponto de extremidade MEX.
bindingNamespace Namespace do nome da seção de ligação do MEX recuperado.
contractNamespace Namespace do contrato do MEX recuperado.
mexSpnIdentity Identidade do nome principal do servidor (SPN) a ser usada para se comunicar com o terminal MEX.
mexUpnIdentity Identidade do nome principal do usuário (UPN) a ser usada para se comunicar com o terminal MEX.
mexDnsIdentity Identidade DNS a ser usada para se comunicar com o ponto de extremidade MEX.
serializer Especifique o uso do serializador "xml" ou "datacontract".

Observação

Mesmo quando usado com clientes totalmente baseados em COM, o moniker de serviço requer que o WCF e o .NET Framework 2.0 de suporte sejam instalados no computador cliente. Também é fundamental que os aplicativos cliente que usam o moniker de serviço carreguem a versão apropriada do tempo de execução do .NET Framework. Ao usar o moniker em aplicativos do Office, um arquivo de configuração pode ser necessário para garantir que a versão correta da estrutura seja carregada. Por exemplo, com o Excel, o seguinte texto deve ser colocado em um arquivo chamado Excel.exe.config no mesmo diretório que o arquivo 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>

Confira também