ServiceMetadataBehavior.HttpGetEnabled Propriété

Définition

Obtient ou définit une valeur qui indique s’il faut publier des métadonnées de service pour la récupération à l’aide d’une requête HTTP/GET.

public:
 property bool HttpGetEnabled { bool get(); void set(bool value); };
public bool HttpGetEnabled { get; set; }
member this.HttpGetEnabled : bool with get, set
Public Property HttpGetEnabled As Boolean

Valeur de propriété

true si le WSDL est publié ; sinon, false. La valeur par défaut est false.

Exemples

L’exemple de code suivant illustre l’utilisation dans un fichier de ServiceMetadataBehavior 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

Si la valeur est HttpGetUrl relative, l’adresse à laquelle les métadonnées sont publiées est l’adresse de base et l’adresse du service ainsi qu’une ?wsdl chaîne de requête.

Si la valeur est HttpGetUrl absolue, l’adresse à laquelle les métadonnées sont publiées est la valeur de valeur plus une ?wsdl chaîne de HttpGetUrl requête.

Par exemple, si l’adresse du service est et si elle HttpGetUrl est http://localhost:8080/CalculatorService une chaîne vide, l’adresse de métadonnées HTTP/GET est http://localhost:8080/CalculatorService?wsdl.

Si vous n’activez pas cette propriété et que vous ne modifiez pas ou ne définissez HttpGetUrl pas cette propriété sur une adresse relative, une exception est levée lors de l’exécution lorsque l’hôte de service est ouvert sans adresse de base pour HTTP.

S’applique à