Freigeben über


Gewusst wie: Verwenden eines Dienstmonikers mit Metadatenaustausch-Verträgen

Nach dem Entwickeln neuer WCF-Dienste können Sie entscheiden, ob das Aufrufen dieser Dienste aus einem Skript oder einer Visual Basic 6.0-Anwendung möglich sein soll. Eine mögliche Methode ist das Generieren einer WCF-Clientassembly, das Registrieren der Assembly bei COM, das Installieren der Assembly im GAC und anschließend das Verweisen der COM-Typen aus dem Visual Basic-Code. Wenn Sie die Anwendung verteilen, müssen Sie auch die WCF-Clientassembly verteilen. Der Benutzer muss dann die WCF-Clientassembly bei COM registrieren und im GAC platzieren. WCF-COM-Interop ermöglicht Ihnen die gleichen Dienstaufrufe ohne eine WCF-Clientassembly. Mithilfe des WCF-Monikers können Sie einen beliebigen WCF-Dienst aus jeder COM-kompatiblen Sprache (Visual Basic, VBScript, Visual Basic for Applications (VBA) usw.) aufrufen, indem Sie einen Metadatenaustausch (MEX)-Endpunkt-URI angeben, den der Dienstmoniker zum Extrahieren von Typinformationen über den Dienst verwendet. In diesem Thema wird beschrieben, wie das Beispiel für Erste Schritte mit WCF unter Verwendung eines WCF-Monikers aufgerufen wird, der einen MEX-Endpunkt angibt.

Tipp

Die von der WCF-Clientassembly definierten Typen werden nie tatsächlich instanziiert. Die Assembly wird nur für Metadaten verwendet.

Verwenden des Dienstmonikers mit einer MEX-Adresse

  1. Erstellen Sie das Beispiel für Erste Schritte, und wechseln Sie in Internet Explorer zu seiner URL (https://localhost/ServiceModelSamples/Service.svc), um sicherzustellen, dass der Dienst funktioniert.

  2. Erstellen Sie ein Visual Basic-Skript oder eine Visual Basic-Anwendung, die den folgenden Code enthält:

        monString = "service:mexaddress=https://localhost/ServiceModelSamples/Service.svc/MEX"
        monString = monString + ", address=https://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. Führen Sie die Visual Basic-Anwendung oder das Skript aus.

    Tipp

    Der Dienst, den Sie aufrufen, muss einen MEX-Endpunkt für den Moniker verfügbar machen, damit dieser die Metadaten aus dem Dienst lesen kann. Weitere Informationen finden Sie unter Gewusst wie: Veröffentlichen von Metadaten für einen Dienst mithilfe einer Konfigurationsdatei.

    Tipp

    Ist der Moniker nicht ordnungsgemäß formatiert oder der Dienst nicht verfügbar, wird nach dem GetObject-Aufruf ein Syntaxfehler zurückgegeben. Vergewissern Sie sich bei Auftreten dieses Fehlers, dass der verwendete Moniker korrekt und der Dienst verfügbar ist.

Siehe auch

Aufgaben

Gewusst wie: Verwenden eines Dienstmonikers mit WSDL-Verträgen

Konzepte

Gewusst wie: Verwenden des Windows Communication Foundation-Dienstmonikers ohne Registrierung