Como: usar um moniker de serviço com contratos de intercâmbio de metadadosHow to: Use a Service Moniker with Metadata Exchange Contracts

Depois de desenvolver alguns novos serviços WCF, você pode decidir que deseja ser capaz de chamar esses serviços de um script ou de um aplicativo Visual Basic 6,0.After developing some new WCF services, you may decide that you want to be able to call these services from a script or a Visual Basic 6.0 application. Um método seria gerar um assembly de cliente WCF, registrar o assembly com COM, instalar o assembly no GAC e, em seguida, fazer referência aos tipos COM do seu código Visual Basic.One method would be to generate a WCF client assembly, register the assembly with COM, install the assembly in the GAC, and then reference the COM types from your Visual Basic code. Ao distribuir o aplicativo, você também precisará distribuir o assembly do cliente WCF.When you distribute the application, you will have to distribute the WCF Client assembly as well. O usuário precisará registrar o assembly do cliente WCF com com e colocá-lo no GAC.The user will then have to register the WCF client assembly with COM and place it in the GAC. A interoperabilidade COM do WCF também permite que você faça as mesmas chamadas de serviço sem depender de um assembly de cliente WCF.WCF COM Interop also allows you to make the same service calls without relying on a WCF client assembly. O moniker do WCF permite chamar qualquer serviço WCF de qualquer linguagem compatível COM COM (Visual Basic, VBScript, Visual Basic for Applications (VBA) e assim por diante), especificando um URI de ponto de extremidade de intercâmbio de metadados (MEX) que o moniker do serviço usa para extrair informações de tipo sobre o serviço.The WCF moniker allows you to call any WCF service from any COM-compatible language (Visual Basic, VBScript, Visual Basic for Applications (VBA), and so on) by specifying a metadata exchange (Mex) endpoint URI that the service moniker uses to extract type information about the service. Este tópico descreve como chamar o Introdução exemplo do WCF usando um moniker do WCF que especifica um ponto de extremidade MEX.This topic describes how to call the Getting Started WCF sample using a WCF moniker that specifies a Mex endpoint.

Observação

Os tipos definidos pelo assembly do cliente WCF nunca são instanciados na verdade.The types defined by the WCF client assembly are never actually instantiated. O assembly é usado somente para metadados.The assembly is used only for metadata.

Usando o moniker do serviço com um endereço MEXUsing the service moniker with a Mex address

  1. Crie o Introdução exemplo e use o Internet Explorer para navegar até sua URL ( http://localhost/ServiceModelSamples/Service.svc ) para garantir que o serviço esteja funcionando.Build the Getting Started sample and use Internet Explorer to browse to its URL (http://localhost/ServiceModelSamples/Service.svc) to ensure that the service is working.

  2. Crie um script de Visual Basic ou Visual Basic aplicativo que contenha o seguinte código:Create a Visual Basic script or Visual Basic application that contains the following code:

    monString = "service:mexaddress=http://localhost/ServiceModelSamples/Service.svc/MEX"  
    monString = monString + ", address=http://localhost/ServiceModelSamples/Service.svc"  
    monString = monString + ", contract=ICalculator, contractNamespace=http://Microsoft.ServiceModel.Samples"  
    monString = monString + ", binding=WSHttpBinding_ICalculator, bindingNamespace=http://Microsoft.ServiceModel.Samples"  
    
    Set calc = GetObject(monString)  
    MsgBox calc.Add(3, 4)  
    
  3. Execute o aplicativo Visual Basic ou o script.Run the Visual Basic application or script.

    Observação

    O serviço que você está chamando deve expor um ponto de extremidade MEX para que o moniker possa ler os metadados do serviço.The service you are calling must expose a Mex endpoint for the moniker to be able to read the metadata from the service. Para obter mais informações, consulte como: publicar metadados para um serviço usando um arquivo de configuração.For more information, see How to: Publish Metadata for a Service Using a Configuration File.

    Observação

    Se o moniker estiver malformado ou se o serviço estiver indisponível, a chamada para retornará GetObject um erro dizendo "sintaxe inválida".If the moniker is malformed or if the service is unavailable, the call to GetObject will return an error saying "Invalid Syntax." Se você receber esse erro, verifique se o moniker que você está usando está correto e se o serviço está disponível.If you receive this error, make sure the moniker you are using is correct and the service is available.

Consulte tambémSee also