Procedura: Usare un moniker del servizio con i contratti di scambio di metadati

Dopo aver sviluppato alcuni nuovi servizi WCF, è possibile decidere di poter chiamare questi servizi da uno script o da un'applicazione Visual Basic 6.0. Un metodo può essere quello di generare un assembly client WCF, registrare l'assembly con COM, installare l'assembly nella Global Assembly Cache e quindi fare riferimento ai tipi COM dal Visual Basic codice. Quando si distribuisce l'applicazione, sarà necessario distribuire anche l'assembly client WCF. L'utente dovrà quindi registrare l'assembly client WCF con COM e posizionarlo nella cache di assembly globale. L'interoperabilità COM WCF consente anche di effettuare le stesse chiamate al servizio senza basarsi su un assembly client WCF. Il moniker WCF consente di chiamare qualsiasi servizio WCF da qualsiasi linguaggio compatibile con COM (Visual Basic, VBScript, Visual Basic, Applications Edition (VBA) e così via, specificando un URI dell'endpoint di scambio di metadati (Mex) che il moniker del servizio usa per estrarre informazioni sul tipo sul servizio. Questo argomento descrive come chiamare l'Attività iniziali WCF usando un moniker WCF che specifica un endpoint Mex.

Nota

I tipi definiti dall'assembly client WCF non vengono mai effettivamente istanziati. e l'assembly viene usato solo per i metadati.

Utilizzo del moniker del servizio con un indirizzo Mex

  1. Compilare Attività iniziali esempio e usare Internet Explorer per passare al relativo URL (http://localhost/ServiceModelSamples/Service.svc) per assicurarsi che il servizio funzioni.

  2. Creare uno script di Visual Basic o un'applicazione Visual Basic che contiene il codice seguente:

    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. Eseguire l'applicazione o lo script Visual Basic.

    Nota

    Il servizio che si sta chiamando deve esporre un endpoint Mex affinché il moniker sia in grado di leggere i metadati dal servizio. Per altre informazioni, vedere Procedura: Pubblicare metadati per un servizio usando un file di configurazione.

    Nota

    Se il formato del moniker non è valido o se il servizio non è disponibile, GetObject la chiamata a restituirà un errore che dice "Sintassi non valida". Se viene visualizzato questo errore, assicurarsi che il moniker in uso sia corretto e che il servizio sia disponibile.

Vedi anche