Partager via


ServiceMetadataBehavior Classe

Définition

Détermine la publication de métadonnées de service et des informations associées.

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
Héritage
ServiceMetadataBehavior
Implémente

Exemples

L'exemple de code suivant indique comment utiliser ServiceMetadataBehavior dans un fichier de configuration pour activer la prise en charge des métadonnées pour les requêtes HTTP GET et 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>

Remarques

Ajoutez un ServiceMetadataBehavior objet à la collection (ou à l’élément ServiceDescription.Behaviors <serviceMetadata> dans un fichier de configuration d’application) pour activer ou désactiver la publication des métadonnées de service. Toutefois, l'ajout du comportement à un service ne suffit pas à activer la publication de métadonnées :

  • Pour activer la récupération de métadonnées WS-Transfer GET, vous devez également ajouter un point de terminaison à votre service dans lequel le contrat correspond à IMetadataExchange. Pour obtenir un exemple, voir Comment : publier des métadonnées pour un service à l’aide du code. Le point de terminaison IMetadataExchange peut être configuré comme n'importe quel autre point de terminaison.

  • Pour activer la récupération de métadonnées HTTP GET, affectez à la propriété HttpGetEnabled la valeur true. Pour plus d’informations sur l’adresse des métadonnées HTTP GET, consultez HttpGetEnabled.

L'adresse du point de terminaison IMetadataExchange respecte les règles habituelles relatives à la combinaison d'adresses de base et d'adresses de point de terminaison. Pour plus d’informations, consultez Publication des métadonnées.

Pour activer la publication des métadonnées à l’aide d’un fichier de configuration, ajoutez l’élément <serviceMetadata> à l’élément <serviceBehaviors> et associez l’élément à l’élément <de service> pour lequel vous souhaitez publier des métadonnées. Pour obtenir un exemple, voir Comment : publier des métadonnées pour un service à l’aide d’un fichier de configuration. La classe possède les membres suivants :

  • La propriété HttpGetEnabled spécifie si des métadonnées sont retournées pour les requêtes HTTP/GET.

  • La propriété HttpGetUrl (avec les adresses de base) spécifie l'adresse HTTP/GET.

  • La propriété HttpsGetEnabled spécifie si des métadonnées sont retournées pour une requête HTTPS/GET.

  • La propriété HttpsGetUrl (avec les adresses de base) spécifie l'adresse HTTPS/GET.

  • La propriété MetadataExporter retourne l'exportateur sous-jacent.

En règle générale, ServiceMetadataBehavior est utilisé à partir d'un fichier de configuration de l'application. Pour obtenir un exemple de code, consultez la section Exemple.

Constructeurs

ServiceMetadataBehavior()

Initialise une nouvelle instance de la classe ServiceMetadataBehavior.

Champs

MexContractName

Retourne la chaîne IMetadataContract.

Propriétés

ExternalMetadataLocation

Obtient ou définit une valeur qui correspond à l'emplacement des métadonnées du service.

HttpGetBinding

Obtient ou définit une liaison utilisée pour configurer la récupération des métadonnées lorsque le transport est HTTP.

HttpGetEnabled

Obtient ou définit une valeur qui indique si les métadonnées du service doivent être publiées pour être récupérées à l'aide d'une requête HTTP/GET.

HttpGetUrl

Obtient ou définit l'emplacement de publication des métadonnées pour les requêtes HTTP/GET.

HttpsGetBinding

Obtient ou définit une liaison utilisée pour configurer la récupération des métadonnées lorsque le transport est HTTPS.

HttpsGetEnabled

Obtient ou définit une valeur qui indique si les métadonnées du service doivent être publiées pour être récupérées à l'aide d'une requête HTTPS/GET.

HttpsGetUrl

Obtient ou définit l'emplacement de publication des métadonnées pour les requêtes HTTPS/GET.

MetadataExporter

Obtient ou définit l'objet interne MetadataExporter utilisé pour publier les métadonnées du service.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

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

Implémentation de IServiceBehavior qui configure les liaisons sous-jacentes pour prendre en charge le comportement.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Implémentation de IServiceBehavior qui configure les liaisons sous-jacentes pour prendre en charge le comportement sur le service.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Implémentation de IServiceBehavior qui confirme que la description de service peut prendre en charge le comportement.

S’applique à