Visão geral da integração com 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 serviços 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 gama de ambientes de desenvolvimento baseados em COM, como Office VBA, Visual Basic 6.0 ou Visual C++ 6.0.
Nota
O moniker de serviço usa um canal de comunicação WCF para toda a comunicação. 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 GetObject
função para fornecer ao desenvolvedor não gerenciado uma abordagem fortemente tipada e específica para COM para chamar serviços Web WCF. Isso requer uma definição local e visível de COM do contrato de serviço Web WCF e da associação a ser usada. Como outros clientes WCF, o moniker de serviço deve construir um canal digitado 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 vinculação e o contrato para se comunicar com um serviço. O contrato pode ser especificado de uma das seguintes formas:
Contrato digitado – 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 do Metadata Exchange (MEX).
Parâmetros suportados pelo moniker de serviço
A tabela a seguir mostra os parâmetros suportados pelo moniker de serviço.
Parâmetro | Description |
---|---|
address |
Localização do URL do serviço. |
binding |
Nome da seção de vinculação da configuração do aplicativo. |
bindingConfiguration |
Instância de vinculação nomeada de dentro da seção de vinculaçã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 SPN (nome principal do servidor) a ser usada para se comunicar com o serviço. |
upnIdentity |
Identidade UPN (nome principal do usuário) a ser usada para se comunicar com o serviço. |
dnsIdentity |
Identidade DNS a ser usada para se comunicar com o serviço. |
mexAddress |
Localização da URL do ponto de extremidade do Metadata Exchange (MEX) do serviço. |
mexBinding |
Nome da seção de vinculação da configuração do aplicativo para se conectar com o ponto de extremidade MEX. |
mexBindingConfiguration |
Instância de vinculação nomeada de dentro da seção de vinculação nomeada para se conectar com o ponto de extremidade MEX. |
bindingNamespace |
Namespace do nome da seção de vinculação do MEX recuperado. |
contractNamespace |
Namespace do contrato do MEX recuperado. |
mexSpnIdentity |
Identidade SPN (nome principal do servidor) a ser usada para se comunicar com o ponto de extremidade MEX. |
mexUpnIdentity |
Identidade UPN (nome principal do usuário) a ser usada para se comunicar com o ponto de extremidade 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". |
Nota
Mesmo quando usado com clientes totalmente baseados em COM, o moniker de serviço requer WCF e o .NET Framework 2.0 de suporte para ser instalado 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>