Sdílet prostřednictvím


ServiceMetadataBehavior Třída

Definice

Řídí publikování metadat služby a souvisejících informací.

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
Dědičnost
ServiceMetadataBehavior
Implementuje

Příklady

Následující příklad kódu ukazuje použití ServiceMetadataBehavior v konfiguračním souboru k povolení podpory metadat pro požadavky HTTP GET a WS-Transfer GET.

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

Poznámky

ServiceMetadataBehavior Přidáním objektu ServiceDescription.Behaviors do kolekce (nebo <elementu serviceMetadata> v konfiguračním souboru aplikace) povolíte nebo zakážete publikování metadat služby. Přidání chování do služby ale nestačí k povolení publikování metadat:

  • Pokud chcete povolit WS-Transfer načítání metadat GET, musíte také přidat koncový bod do vaší služby, ve které je IMetadataExchangekontrakt . Příklad najdete v tématu Postupy: Publikování metadat pro službu pomocí kódu. Koncový IMetadataExchange bod je možné nakonfigurovat jako jakýkoli jiný koncový bod.

  • Chcete-li povolit načítání metadat HTTP GET, nastavte HttpGetEnabled vlastnost na true. Další informace o adrese metadat HTTP GET naleznete v tématu HttpGetEnabled.

Adresa koncového IMetadataExchange bodu se řídí normálními pravidly týkajícími se kombinace základních adres a adres koncových bodů. Další informace najdete v tématu Metadata publikování.

Pokud chcete povolit publikování metadat pomocí konfiguračního souboru, přidejte <element serviceMetadata> do elementu <serviceBehaviors> a přidružte element <k elementu služby> , pro který chcete publikovat metadata. Příklad najdete v tématu Postupy: Publikování metadat pro službu pomocí konfiguračního souboru. Třída má následující členy:

  • Vlastnost HttpGetEnabled určuje, jestli jsou metadata vrácena pro požadavky HTTP/GET.

  • Vlastnost HttpGetUrl (ve spojení se základními adresami) určuje adresu HTTP/GET.

  • Vlastnost HttpsGetEnabled určuje, jestli se pro požadavek HTTPS/GET vrátí metadata.

  • Vlastnost HttpsGetUrl (ve spojení se základními adresami) určuje adresu HTTPS/GET.

  • Vlastnost MetadataExporter vrátí podkladový vývozce.

Obvykle se ServiceMetadataBehavior používá z konfiguračního souboru aplikace. Příklad kódu najdete v části Příklad.

Konstruktory

ServiceMetadataBehavior()

Inicializuje novou instanci ServiceMetadataBehavior třídy.

Pole

MexContractName

Vrátí řetězec IMetadataContract.

Vlastnosti

ExternalMetadataLocation

Získá nebo nastaví hodnotu, která je umístěním metadat služby.

HttpGetBinding

Získá nebo nastaví vazbu použitou ke konfiguraci načítání metadat při přenosu http.

HttpGetEnabled

Získá nebo nastaví hodnotu, která označuje, zda publikovat metadata služby pro načtení pomocí požadavku HTTP/GET.

HttpGetUrl

Získá nebo nastaví umístění publikace metadat pro požadavky HTTP/GET.

HttpsGetBinding

Získá nebo nastaví vazbu použitou ke konfiguraci načítání metadat při přenosu HTTPS.

HttpsGetEnabled

Získá nebo nastaví hodnotu, která označuje, zda publikovat metadata služby pro načtení pomocí požadavku HTTPS/GET.

HttpsGetUrl

Získá nebo nastaví umístění publikace metadat pro požadavky HTTPS/GET.

MetadataExporter

Získá nebo nastaví interní MetadataExporter objekt použitý k publikování metadat služby.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

IServiceBehavior Implementace, která nakonfiguruje základní vazby tak, aby podporovala chování.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

IServiceBehavior Implementace, která konfiguruje podkladové vazby tak, aby podporovala chování ve službě.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

IServiceBehavior Implementace, která ověřuje, že popis služby může podporovat chování.

Platí pro