ServiceMetadataBehavior.HttpGetEnabled Propiedad

Definición

Obtiene o establece un valor que indica si publicar o no los metadatos del servicio para la recuperación utilizando una solicitud 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

Valor de propiedad

Boolean

true si WSDL está publicado; en caso contrario, false. De manera predeterminada, es false.

Ejemplos

El siguiente ejemplo de código demuestra el uso de ServiceMetadataBehavior en un archivo de configuración para permitir la admisión de los metadatos para las solicitudes HTTP/GET y transferencia de WS/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>

Comentarios

Si el valor de HttpGetUrl es relativo, la dirección en la que se publican los metadatos es la dirección base y la dirección de servicio más una cadena de consulta ?wsdl.

Si el valor de HttpGetUrl es absoluto, la dirección en la que se publican los metadatos es el valor del valor HttpGetUrl más una querystring ?wsdl.

Por ejemplo, si la dirección de servicio es http://localhost:8080/CalculatorService y HttpGetUrl es una cadena vacía, la dirección de los metadatos de HTTP/GET es http://localhost:8080/CalculatorService?wsdl.

Si no habilita esta propiedad y no cambia HttpGetUrl o lo establece como una dirección relativa, se producirá una excepción en el tiempo de ejecución cuando el host del servicio se abra sin una dirección base para HTTP.

Se aplica a