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>