ServiceMetadataBehavior Klas

Definitie

Hiermee bepaalt u de publicatie van servicemetagegevens en bijbehorende informatie.

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
Overname
ServiceMetadataBehavior
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u hoe ServiceMetadataBehavior u in een configuratiebestand metagegevensondersteuning kunt inschakelen voor HTTP GET en WS-Transfer GET-aanvragen.

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

Opmerkingen

Voeg een ServiceMetadataBehavior object toe aan de ServiceDescription.Behaviors verzameling (of het <serviceMetadata-element> in een toepassingsconfiguratiebestand) om de publicatie van servicemetagegevens in of uit te schakelen. Het toevoegen van het gedrag aan een service is echter niet voldoende om de publicatie van metagegevens in te schakelen:

  • Als u het ophalen van WS-Transfer GET-metagegevens wilt inschakelen, moet u ook een eindpunt toevoegen aan uw service waarin het contract zich bevindt IMetadataExchange. Zie Voor een voorbeeld : Metagegevens voor een service publiceren met behulp van code. Het IMetadataExchange eindpunt kan worden geconfigureerd zoals elk ander eindpunt.

  • Als u het ophalen van HTTP GET-metagegevens wilt inschakelen, stelt u de HttpGetEnabled eigenschap in op true. Zie voor meer informatie over het adres van HTTP GET-metagegevens HttpGetEnabled.

Het adres van het IMetadataExchange eindpunt volgt de normale regels met betrekking tot de combinatie van basisadressen en eindpuntadressen. Zie Publicatiemetagegevens voor meer informatie.

Als u de publicatie van metagegevens met behulp van een configuratiebestand wilt inschakelen, voegt u het <element serviceMetadata> toe aan het <element serviceBehaviors> en koppelt u het element aan het <service-element> waarvoor u metagegevens wilt publiceren. Zie Voor een voorbeeld : Metagegevens voor een service publiceren met behulp van een configuratiebestand. De klasse heeft de volgende leden:

  • De HttpGetEnabled eigenschap geeft aan of metagegevens worden geretourneerd voor HTTP/GET-aanvragen.

  • De HttpGetUrl eigenschap (in combinatie met de basisadressen) geeft het HTTP/GET-adres op.

  • De HttpsGetEnabled eigenschap geeft aan of metagegevens worden geretourneerd voor een HTTPS/GET-aanvraag.

  • De HttpsGetUrl eigenschap (in combinatie met de basisadressen) geeft het HTTPS/GET-adres op.

  • De MetadataExporter eigenschap retourneert de onderliggende exporteur.

Meestal wordt het ServiceMetadataBehavior gebruikt vanuit een toepassingsconfiguratiebestand. Zie de sectie Voorbeeld voor een codevoorbeeld.

Constructors

Name Description
ServiceMetadataBehavior()

Initialiseert een nieuw exemplaar van de ServiceMetadataBehavior klasse.

Velden

Name Description
MexContractName

Retourneert de tekenreeks IMetadataContract.

Eigenschappen

Name Description
ExternalMetadataLocation

Hiermee wordt een waarde opgehaald of ingesteld die de locatie is van de metagegevens van de service.

HttpGetBinding

Hiermee haalt u een binding op die wordt gebruikt om het ophalen van metagegevens te configureren wanneer het transport HTTP is.

HttpGetEnabled

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de metagegevens van de service moeten worden gepubliceerd voor het ophalen met behulp van een HTTP/GET-aanvraag.

HttpGetUrl

Hiermee haalt u de locatie van de metagegevenspublicatie op voor HTTP-/GET-aanvragen of stelt u deze in.

HttpsGetBinding

Hiermee haalt u een binding op die wordt gebruikt om het ophalen van metagegevens te configureren wanneer het transport HTTPS is.

HttpsGetEnabled

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de metagegevens van de service moeten worden gepubliceerd voor het ophalen met behulp van een HTTPS/GET-aanvraag.

HttpsGetUrl

Hiermee haalt u de locatie van de metagegevenspublicatie voor HTTPS/GET-aanvragen op of stelt u deze in.

MetadataExporter

Hiermee haalt u het interne MetadataExporter object op dat wordt gebruikt voor het publiceren van de metagegevens van de service.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Implementatie hiervan IServiceBehavior configureert de onderliggende bindingen om het gedrag te ondersteunen.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Implementatie hiervan IServiceBehavior configureert de onderliggende bindingen om het gedrag van de service te ondersteunen.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Implementatie van IServiceBehavior die validatie valideert dat de servicebeschrijving het gedrag kan ondersteunen.

Van toepassing op