ServiceMetadataBehavior.HttpGetEnabled Eigenschap

Definitie

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.

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

Waarde van eigenschap

true als de WSDL wordt gepubliceerd; anders, false. De standaardwaarde is false.

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

Als de waarde HttpGetUrl relatief is, is het adres waarop de metagegevens worden gepubliceerd het basisadres en het serviceadres plus een ?wsdl querytekenreeks.

Als de waarde HttpGetUrl absoluut is, is het adres waarop de metagegevens worden gepubliceerd de waarde van HttpGetUrl de waarde plus een ?wsdl querytekenreeks.

Als het serviceadres bijvoorbeeld is http://localhost:8080/CalculatorService en het HttpGetUrl een lege tekenreeks is, is http://localhost:8080/CalculatorService?wsdlhet HTTP/GET-metagegevensadres.

Als u deze eigenschap niet inschakelt en deze niet wijzigt HttpGetUrl of instelt op een relatief adres, wordt er tijdens runtime een uitzondering gegenereerd wanneer de servicehost wordt geopend zonder een basisadres voor HTTP.

Van toepassing op