ServiceMetadataBehavior.HttpGetEnabled Egenskap

Definition

Hämtar eller anger ett värde som anger om tjänstens metadata ska publiceras för hämtning med hjälp av en HTTP/GET-begäran.

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

Egenskapsvärde

trueom WSDL publiceras; annars . false Standardvärdet är false.

Exempel

Följande kodexempel visar användningen av ServiceMetadataBehavior i en konfigurationsfil för att aktivera metadatastöd för HTTP/GET- och WS-Transfer/GET-begäranden.

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

Kommentarer

Om värdet för HttpGetUrl är relativt är adressen där metadata publiceras basadressen och tjänstadressen plus en ?wsdl frågesträng.

Om värdet HttpGetUrl för är absolut är adressen där metadata publiceras värdet för HttpGetUrl värdet plus en ?wsdl frågesträng.

Om tjänstadressen till exempel är http://localhost:8080/CalculatorService och HttpGetUrl är en tom sträng är http://localhost:8080/CalculatorService?wsdlHTTP/GET-metadataadressen .

Om du inte aktiverar den här egenskapen och inte ändrar HttpGetUrl eller anger den till en relativ adress utlöses ett undantag vid körning när tjänstvärden öppnas utan en basadress för HTTP.

Gäller för