ServiceMetadataBehavior.HttpGetEnabled Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která označuje, zda publikovat metadata služby pro načtení pomocí požadavku 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
Hodnota vlastnosti
true
je-li publikováno WSDL; false
v opačném případě . Výchozí formát je false
.
Příklady
Následující příklad kódu ukazuje použití ServiceMetadataBehavior v konfiguračním souboru k povolení podpory metadat pro požadavky HTTP/GET a 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>
Poznámky
Pokud je hodnota HttpGetUrl relativní, adresa, na které se metadata publikují, je základní adresa a adresa služby a ?wsdl
řetězec dotazu.
Pokud je hodnota HttpGetUrl absolutní adresy, na které se metadata publikují, je hodnota HttpGetUrl hodnoty plus ?wsdl
řetězec dotazu.
Pokud je http://localhost:8080/CalculatorService
například adresa služby a HttpGetUrl jedná se o prázdný řetězec, adresa metadat HTTP/GET je http://localhost:8080/CalculatorService?wsdl
.
Pokud tuto vlastnost nepovolíte a nezměníte HttpGetUrl ji nebo ji nenastavíte na relativní adresu, při otevření hostitele služby bez základní adresy HTTP se vyvolá výjimka za běhu.