Compartilhar via


Visão geral da integração com aplicativos COM

O WCF (Windows Communication Foundation) 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 não gerenciado baseado em COM e não quiser migrar, ainda poderá integrar os serviços Web do WCF diretamente ao código existente usando o moniker de serviço WCF. O identificador de serviço pode ser usado em 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 identificador de serviço usa um canal de comunicação WCF para todas as interaçõ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 digitado – o contrato é registrado como um tipo COM visível na máquina cliente.

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

  • Contrato MEX – o contrato é recuperado em tempo de execução de um endpoint de troca de metadata (MEX).

Parâmetros Suportados pelo Moniker de Serviço

A tabela a seguir mostra os parâmetros compatíveis com o identificador de serviço.

Parâmetro Descrição
address Local 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 IID (identificador de interface) 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 SPN (nome principal do servidor) a ser usada para se comunicar com o serviço.
upnIdentity Identidade UPN (Nome Principal de Usuário) a ser utilizada para comunicação com o serviço.
dnsIdentity Identidade DNS que 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 runtime 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>

Consulte também