Partilhar via


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.

Observação

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, visível para COM, do contrato de serviço Web WCF e do encadeamento a ser usado. Como outros clientes WCF, o moniker de serviço deve construir um canal tipificado 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 a partir de um endpoint de Metadata Exchange (MEX).

Parâmetros suportados pelo moniker de serviço

A tabela a seguir mostra os parâmetros suportados pela designação de serviço.

Parâmetro Descrição
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 ligação nomeada dentro da secçã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 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 utilizada para comunicar-se 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 ligação nomeada de dentro da secção de ligaçã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 Utilizador) a ser usada para comunicar com o endpoint MEX.
mexDnsIdentity Identidade DNS a ser usada para comunicar com o terminal MEX.
serializer Especifique o uso do serializador "xml" ou "datacontract".

Observação

Mesmo quando usado com clientes totalmente baseados em COM, o identificador de serviço requer que o WCF e o .NET Framework 2.0 de suporte estejam instalados no computador cliente. Também é fundamental que as aplicações cliente que utilizam o nome de serviço utilizem a versão correta 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>

Ver também