ServiceMetadataBehavior.HttpGetEnabled Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.