Share via


ServiceMetadataBehavior Klasse

Definition

Steuert die Veröffentlichung von Dienstmetadaten und zugehörigen Informationen.

public ref class ServiceMetadataBehavior : System::ServiceModel::Description::IServiceBehavior
public class ServiceMetadataBehavior : System.ServiceModel.Description.IServiceBehavior
type ServiceMetadataBehavior = class
    interface IServiceBehavior
Public Class ServiceMetadataBehavior
Implements IServiceBehavior
Vererbung
ServiceMetadataBehavior
Implementiert

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung von ServiceMetadataBehavior in einer Konfigurationsdatei, um die Metadatenunterstützung für HTTP GET- und WS-Transfer GET-Anforderungen zu aktivieren.

        // Create a new metadata behavior object and set its properties to
        // create a secure endpoint.
        ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
        //sb.EnableHelpPage= true;
        //sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
        //myServiceHost.Description.Behaviors.Add(sb);
    }

      private void SnippetServiceMetadataBehavior()
      {
          // service for which <<indigo2>> automatically adds a
          // ServiceMetadataBehavior to publish metadata as well as
          // an HTML service help page

          // from C_HowToSecureEndpoint\cs
          // Create a new metadata behavior object and set its properties to
          // create a secure endpoint.
          ServiceMetadataBehavior sb = new ServiceMetadataBehavior();
/*          sb.EnableHelpPage = true;
          sb.enableMetadataExchange = true;
          sb.HttpsGetUrl = new Uri("https://myMachineName:8036/myEndpoint");
          myServiceHost.Description.Behaviors.Add(sb);
 */
      }

    private void Run()
    {

      // T:System.ServiceModel.ServiceMetadataBehavior
      // <Snippet#0>

      // Create a ServiceHost for the service type and use the base address from configuration.
      ServiceHost host = new ServiceHost(typeof(SampleService));
      try
      {
        ServiceMetadataBehavior metad
          = host.Description.Behaviors.Find<ServiceMetadataBehavior>();
        if (metad == null)
          metad = new ServiceMetadataBehavior();
        metad.HttpGetEnabled = true;
        host.Description.Behaviors.Add(metad);
        host.AddServiceEndpoint(
          ServiceMetadataBehavior.MexContractName,
          MetadataExchangeBindings.CreateMexHttpBinding(),
          "mex"
        );

        // The service can now be accessed.
        Console.WriteLine("The service is ready.");
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();

        // Close the ServiceHostBase to shutdown the service.
        host.Close();

        // </Snippet#0>

Hinweise

ServiceMetadataBehavior Fügen Sie der ServiceDescription.Behaviors Auflistung ein Objekt (oder das <ServiceMetadata-Element> in einer Anwendungskonfigurationsdatei) hinzu, um die Publikation von Dienstmetadaten zu aktivieren oder zu deaktivieren. Das Hinzufügen des Verhaltens zu einem Dienst reicht jedoch nicht aus, um die Metadatenveröffentlichung zu aktivieren:

  • Um das Abrufen von WS-Transfer GET-Metadaten zu aktivieren, müssen Sie dem Dienst, in dem der Vertrag IMetadataExchange lautet, außerdem einen Endpunkt hinzufügen. Ein Beispiel finden Sie unter How to: Veröffentlichen von Metadaten für einen Dienst mit Code. Der IMetadataExchange-Endpunkt kann wie jeder andere Endpunkt konfiguriert werden.

  • Um das Abrufen von HTTP GET-Metadaten zu aktivieren, legen Sie die HttpGetEnabled-Eigenschaft auf true fest. Weitere Informationen zur Adresse der HTTP GET-Metadaten finden Sie unter HttpGetEnabled.

Die Adresse des IMetadataExchange-Endpunkts folgt den normalen Regeln bezüglich der Kombination von Basis- und Endpunktadresse. Weitere Informationen finden Sie unter "Veröffentlichungsmetadaten".

Um die Publikation von Metadaten mithilfe einer Konfigurationsdatei zu aktivieren, fügen Sie das <ServiceMetadata-Element> dem <ServiceBehaviors-Element> hinzu, und zuordnen Sie das Element dem Dienstelement>, für das< Sie Metadaten veröffentlichen möchten. Ein Beispiel finden Sie unter How to: Veröffentlichen von Metadaten für einen Dienst mithilfe einer Konfigurationsdatei. Die Klasse verfügt über die folgenden Member:

  • Die HttpGetEnabled-Eigenschaft gibt an, ob Metadaten für HTTP/GET-Anforderungen zurückgegeben werden.

  • Die HttpGetUrl-Eigenschaft (in Verbindung mit den Basisadressen) gibt die HTTP/GET-Adresse an.

  • Die HttpsGetEnabled-Eigenschaft gibt an, ob Metadaten für eine HTTPS/GET-Anforderung zurückgegeben werden.

  • Die HttpsGetUrl-Eigenschaft (in Verbindung mit den Basisadressen) gibt die HTTPS/GET-Adresse an.

  • Die MetadataExporter-Eigenschaft gibt das zugrunde liegende Exportprogramm zurück.

In der Regel wird das ServiceMetadataBehavior aus einer Anwendungskonfigurationsdatei verwendet. Ein Codebeispiel hierfür finden Sie im Beispielabschnitt.

Konstruktoren

ServiceMetadataBehavior()

Initialisiert eine neue Instanz der ServiceMetadataBehavior-Klasse.

Felder

MexContractName

Gibt die Zeichenfolge IMetadataContract zurück.

Eigenschaften

ExternalMetadataLocation

Ruft einen Wert ab, der den Speicherort der Dienstmetadaten angibt, oder legt ihn fest.

HttpGetBinding

Ruft eine Bindung ab oder legt sie fest, die verwendet wird, um den Abruf von Metadaten zu konfigurieren, wenn der Transport HTTP ist.

HttpGetEnabled

Ruft einen Wert ab, der angibt, ob Dienstmetadaten für den Abruf mit einer HTTP/GET-Anforderung veröffentlicht werden sollen.

HttpGetUrl

Ruft den Speicherort der Metadatenveröffentlichtung für HTTP/GET-Anforderungen ab oder legt ihn fest.

HttpsGetBinding

Ruft eine Bindung ab oder legt sie fest, die verwendet wird, um den Abruf von Metadaten zu konfigurieren, wenn der Transport HTTPS ist.

HttpsGetEnabled

Ruft einen Wert ab, der angibt, ob Dienstmetadaten für den Abruf mit einer HTTPS/GET-Anforderung veröffentlicht werden sollen, oder legt den Wert fest.

HttpsGetUrl

Ruft den Speicherort der Metadatenveröffentlichung für HTTPS/GET-Anforderungen ab oder legt ihn fest.

MetadataExporter

Ruft das interne MetadataExporter-Objekt, das zum Veröffentlichen der Dienstmetadaten verwendet wird, ab oder legt es fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Implementierung von IServiceBehavior, durch die die zugrunde liegenden Bindungen für die Unterstützung des Verhaltens konfiguriert werden.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Implementierung von IServiceBehavior, durch die die zugrunde liegenden Bindungen für die Unterstützung des Verhaltens im Dienst konfiguriert werden.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Implementierung von IServiceBehavior, mit der überprüft wird, dass die Dienstbeschreibung das Verhalten unterstützen kann.

Gilt für