Gewusst wie: Veröffentlichen von Metadaten für einen Dienst mithilfe einer Konfigurationsdatei
Dies ist eines der beiden "Gewusst wie"-Themen, die veranschaulichen, wie Sie Metadaten für einen Windows Communication Foundation (WCF)-Dienst veröffentlichen. Es gibt zwei Möglichkeiten, wie ein Dienst Metadaten veröffentlichen kann: mit einer Konfigurationsdatei und mit Code. In diesem Thema wird gezeigt, wie Sie Metadaten für einen Dienst mithilfe einer Konfigurationsdatei veröffentlichen. Weitere Informationen zur Veröffentlichung von Metadaten im Code finden Sie unter Gewusst wie: Veröffentlichen von Metadaten für einen Dienst über den Code. Die Veröffentlichung von Metadaten ermöglicht es Clients, Metadaten über eine WS-Transfer GET-Anforderung oder eine HTTP/GET-Anforderung mithilfe einer ?wsdl-Abfragezeichenfolge abzurufen. Erstellen Sie einen grundlegenden WCF-Dienst, um sicherzustellen, dass der Code funktioniert. Der Einfachheit halber wird im folgenden Code ein grundlegender, selbst gehosteter Dienst bereitgestellt.
Dieser Dienst ist ein selbst gehosteter Dienst, der mit einer Konfigurationsdatei konfiguriert wird. Die folgende Konfigurationsdatei dient als Ausgangspunkt für dieses Thema.
So veröffentlichen Sie Metadaten für einen WCF-Dienst mithilfe einer Konfigurationsdatei
Erstellen Sie in der App.config-Datei, nachdem Sie das </services>-Element geschlossen haben, ein <behaviors>-Element.
Fügen Sie im <behaviors>-Element ein <serviceBehaviors>-Element hinzu.
Fügen Sie ein <behavior>-Element zum <serviceBehaviors>-Element hinzu, und geben Sie einen Wert für das name-Attribut des <behavior>-Elements an.
Fügen Sie dem <behavior>-Element ein <serviceMetadata>-Element hinzu. Legen Sie das httpGetEnabledAttribut auf true und das policyVersion-Attribut auf die Richtlinie 1.5 fest. httpGetEnabled ermöglicht es dem Dienst, auf die Metadatenanforderung einer HTTP GET-Anforderung zu antworten. policyVersion teilt dem Dienst mit, bei der Erstellung von Metadaten der WS-Richtlinie 1.5 zu folgen.
Fügen Sie dem <service>-Element ein behaviorConfiguration-Attribut hinzu, und geben Sie das name-Attribut des in Schritt 1 hinzugefügten <behavior>-Elements an, wie im folgenden Codebeispiel.
Fügen Sie ein oder mehrere <endpoint>-Elemente hinzu, wobei der Vertrag auf IMetadataExchange festgelegt ist, wie im folgenden Codebeispiel.
Legen Sie für die in Schritt 6 hinzugefügten Metadatenendpunkte das binding-Attribut auf einen der folgenden Werte fest:
- mexHttpBinding für HTTP-Veröffentlichung.
- mexHttpsBinding für HTTPS-Veröffentlichung.
- mexNamedPipeBinding für benannte Pipeveröffentlichung.
- mexTcpBinding für TCP-Veröffentlichung.
Legen Sie die Adressen für die in Schritt 6 hinzugefügten Metadatenendpunkte gleich folgendem fest:
- Eine leere Zeichenfolge, um die Basisadresse der Hostanwendung als Veröffentlichungspunkt zu verwenden, wenn die Basisadresse gleich der Metadatenbindung ist.
- Eine relative Adresse, wenn die Hostanwendung über eine Basisadresse verfügt.
- Eine absolute Adresse.
Erstellen Sie die Konsolenanwendung und führen Sie sie aus.
Rufen Sie mithilfe des Internet Explorers die Basisadresse des Diensts auf (in diesem Beispiel https://localhost:8001/MetadataSample), und stellen Sie sicher, dass die Metadatenveröffentlichung aktiviert ist. Wenn nicht, wird oben auf der Ergebnisseite folgende Meldung angezeigt: "Das Veröffentlichen von Metadaten für diesen Dienst ist derzeit deaktiviert."
Beispiel
Im folgenden Codebeispiel wird die Implementierung eines einfachen WCF-Diensts und der Konfigurationsdatei, die für diesen Dienst Metadaten veröffentlicht, veranschaulicht.
Siehe auch
Aufgaben
Gewusst wie: Hosten eines WCF-Diensts in einer verwalteten Anwendung
Gewusst wie: Veröffentlichen von Metadaten für einen Dienst über den Code
Referenz
Konzepte
Übersicht über die Metadatenarchitektur
Verwenden von Metadaten