ServiceMetadataBehavior.HttpGetEnabled Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob Dienstmetadaten für den Abruf mit einer HTTP/GET-Anforderung veröffentlicht werden sollen.

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

Eigenschaftswert

true, wenn WSDL veröffentlicht wird, andernfalls false. Der Standardwert ist false.

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung von ServiceMetadataBehavior in einer Konfigurationsdatei, um die Metadatenunterstützung für HTTP/GET- und WS-Transfer/GET-Anforderungen zu aktivieren.

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

Hinweise

Wenn der Wert von HttpGetUrl relativ ist, ist die Adresse, an der die Metadaten veröffentlicht werden, die Basisadresse und die Dienstadresse zuzüglich einer ?wsdl-Abfragezeichenfolge.

Wenn der Wert von HttpGetUrl absolut ist, ist die Adresse, an der die Metadaten veröffentlicht werden, der HttpGetUrl-Wert zuzüglich einer ?wsdl-Abfragezeichenfolge.

Wenn die Dienstadresse beispielsweise http://localhost:8080/CalculatorService ist und HttpGetUrl eine leere Zeichenfolge, lautet die HTTP/GET-Metadatenadresse http://localhost:8080/CalculatorService?wsdl.

Wenn Sie diese Eigenschaft nicht aktivieren und HttpGetUrl nicht ändern oder auf eine relative Adresse festlegen, wird zur Laufzeit eine Ausnahme ausgelöst, wenn der Diensthost ohne eine Basisadresse für HTTP geöffnet wird.

Gilt für: