ServiceMetadataBehavior.HttpGetEnabled Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy należy opublikować metadane usługi na potrzeby pobierania przy użyciu żądania 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
Wartość właściwości
true
w przypadku opublikowania pliku WSDL; w przeciwnym razie , false
. Wartość domyślna to false
.
Przykłady
Poniższy przykład kodu przedstawia użycie elementu ServiceMetadataBehavior w pliku konfiguracji w celu włączenia obsługi metadanych dla żądań HTTP/GET i WS-Transfer/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>
Uwagi
Jeśli wartość HttpGetUrl jest względna, adres, pod którym są publikowane metadane, jest adresem podstawowym i adresem usługi oraz ciągiem ?wsdl
zapytania.
Jeśli wartość HttpGetUrl jest bezwzględna adresem, pod którym są publikowane metadane, jest wartość HttpGetUrl wartości plus ?wsdl
querystring.
Jeśli na przykład adres usługi to http://localhost:8080/CalculatorService
i HttpGetUrl ciąg jest pusty, adres metadanych HTTP/GET to http://localhost:8080/CalculatorService?wsdl
.
Jeśli nie włączysz tej właściwości i nie zmienisz HttpGetUrl ani nie ustawisz jej na adres względny, podczas otwierania hosta usługi bez adresu podstawowego protokołu HTTP jest zgłaszany wyjątek w czasie wykonywania.