ServiceMetadataBehavior Klasse

Definition

Steuert die Veröffentlichung von Dienstmetadaten und zugehörigen Informationen.Controls the publication of service metadata and associated information.

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.The following code example demonstrates the use of ServiceMetadataBehavior in a configuration file to enable metadata support for HTTP GET and WS-Transfer GET requests.

        // 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

Fügen Sie der ServiceDescription.Behaviors Auflistung (oder dem <serviceMetadata> -Element in einer Anwendungs Konfigurationsdatei) ein ServiceMetadataBehavior-Objekt hinzu, um die Veröffentlichung von Dienst Metadaten zu aktivieren bzw. zu deaktivieren.Add a ServiceMetadataBehavior object to the ServiceDescription.Behaviors collection (or the <serviceMetadata> element in an application configuration file) to enable or disable the publication of service metadata. Das Hinzufügen des Verhaltens zu einem Dienst reicht jedoch nicht aus, um die Metadatenveröffentlichung zu aktivieren:However, adding the behavior to a service is not sufficient to enable metadata publication:

  • 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.To enable WS-Transfer GET metadata retrieval, you must also add an endpoint to your service in which the contract is IMetadataExchange. Ein Beispiel finden Sie unter Gewusst wie: Veröffentlichen von Metadaten für einen Dienst mithilfe von Code.For an example, see How to: Publish Metadata for a Service Using Code. Der IMetadataExchange-Endpunkt kann wie jeder andere Endpunkt konfiguriert werden.The IMetadataExchange endpoint can be configured as can any other endpoint.

  • Um das Abrufen von HTTP GET-Metadaten zu aktivieren, legen Sie die HttpGetEnabled-Eigenschaft auf true fest.To enable HTTP GET metadata retrieval, set the HttpGetEnabled property to true. Weitere Informationen zur Adresse von HTTP Get-Metadaten finden Sie unter HttpGetEnabled.For more information about the address of HTTP GET metadata, see HttpGetEnabled.

Die Adresse des IMetadataExchange-Endpunkts folgt den normalen Regeln bezüglich der Kombination von Basis- und Endpunktadresse.The address of the IMetadataExchange endpoint follows the normal rules regarding the combination of base addresses and endpoint addresses. Weitere Informationen finden Sie unter Veröffentlichen von Metadaten.For more information, see Publishing Metadata.

Wenn Sie die Veröffentlichung von Metadaten mithilfe einer Konfigurationsdatei aktivieren möchten, fügen Sie das <serviceMetadata> -Element dem <serviceverhaltens> -Element hinzu, und ordnen Sie das-Element dem <-Dienst> Element zu, für das Sie Metadaten veröffentlichen möchten.To enable the publication of metadata using a configuration file, add the <serviceMetadata> element to the <serviceBehaviors> element and associate the element with the <service> element for which you want to publish metadata. Ein Beispiel finden Sie unter Gewusst wie: Veröffentlichen von Metadaten für einen Dienst mithilfe einer Konfigurationsdatei.For an example, see How to: Publish Metadata for a Service Using a Configuration File. Die Klasse verfügt über die folgenden Member:The class has the following members:

  • Die HttpGetEnabled-Eigenschaft gibt an, ob Metadaten für HTTP/GET-Anforderungen zurückgegeben werden.The HttpGetEnabled property specifies whether metadata is returned for HTTP/GET requests.

  • Die HttpGetUrl-Eigenschaft (in Verbindung mit den Basisadressen) gibt die HTTP/GET-Adresse an.The HttpGetUrl property (in conjunction with the base addresses) specifies the HTTP/GET address.

  • Die HttpsGetEnabled-Eigenschaft gibt an, ob Metadaten für eine HTTPS/GET-Anforderung zurückgegeben werden.The HttpsGetEnabled property specifies whether metadata is returned for an HTTPS/GET request.

  • Die HttpsGetUrl-Eigenschaft (in Verbindung mit den Basisadressen) gibt die HTTPS/GET-Adresse an.The HttpsGetUrl property (in conjunction with the base addresses) specifies the HTTPS/GET address.

  • Die MetadataExporter-Eigenschaft gibt das zugrunde liegende Exportprogramm zurück.The MetadataExporter property returns the underlying exporter.

In der Regel wird das ServiceMetadataBehavior aus einer Anwendungskonfigurationsdatei verwendet.Typically the ServiceMetadataBehavior is used from an application configuration file. Ein Codebeispiel hierfür finden Sie im Beispielabschnitt.See the Example section for a code example.

Konstruktoren

ServiceMetadataBehavior()

Initialisiert eine neue Instanz der Klasse ServiceMetadataBehavior.Initializes a new instance of the ServiceMetadataBehavior class.

Felder

MexContractName

Gibt die Zeichenfolge IMetadataContract zurück.Returns the string IMetadataContract.

Eigenschaften

ExternalMetadataLocation

Ruft einen Wert ab, der den Speicherort der Dienstmetadaten angibt, oder legt ihn fest.Gets or sets a value that is the location of service metadata.

HttpGetBinding

Ruft eine Bindung ab oder legt sie fest, die verwendet wird, um den Abruf von Metadaten zu konfigurieren, wenn der Transport HTTP ist.Gets or sets a binding used to configure metadata retrieval when the transport is HTTP.

HttpGetEnabled

Ruft einen Wert ab, der angibt, ob Dienstmetadaten für den Abruf mit einer HTTP/GET-Anforderung veröffentlicht werden sollen.Gets or sets a value that indicates whether to publish service metadata for retrieval using an HTTP/GET request.

HttpGetUrl

Ruft den Speicherort der Metadatenveröffentlichtung für HTTP/GET-Anforderungen ab oder legt ihn fest.Gets or sets the location of metadata publication for HTTP/GET requests.

HttpsGetBinding

Ruft eine Bindung ab oder legt sie fest, die verwendet wird, um den Abruf von Metadaten zu konfigurieren, wenn der Transport HTTPS ist.Gets or sets a binding used to configure metadata retrieval when the transport is HTTPS.

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.Gets or sets a value that indicates whether to publish service metadata for retrieval using an HTTPS/GET request.

HttpsGetUrl

Ruft den Speicherort der Metadatenveröffentlichung für HTTPS/GET-Anforderungen ab oder legt ihn fest.Gets or sets the location of metadata publication for HTTPS/GET requests.

MetadataExporter

Ruft das interne MetadataExporter-Objekt, das zum Veröffentlichen der Dienstmetadaten verwendet wird, ab oder legt es fest.Gets or sets the internal MetadataExporter object used to publish the service metadata.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(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.Implementation of IServiceBehavior that configures the underlying bindings to support the behavior.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Implementierung von IServiceBehavior, durch die die zugrunde liegenden Bindungen für die Unterstützung des Verhaltens im Dienst konfiguriert werden.Implementation of IServiceBehavior that configures the underlying bindings to support the behavior on the service.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Implementierung von IServiceBehavior, mit der überprüft wird, dass die Dienstbeschreibung das Verhalten unterstützen kann.Implementation of IServiceBehavior that validates that the service description can support the behavior.

Gilt für: