ServiceMetadataBehavior.HttpGetEnabled Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se pubblicare metadati del servizio per il recupero utilizzando una richiesta 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
Valore della proprietà
true
se WSDL viene pubblicato, in caso contrario false
. Il valore predefinito è false
.
Esempio
Nel codice di esempio seguente viene illustrato l'utilizzo di ServiceMetadataBehavior in un file di configurazione per abilitare il supporto dei metadati per richieste HTTP/GET e 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>
Commenti
Se il valore di HttpGetUrl è relativo, gli indirizzi ai quali vengono pubblicati i metadati saranno l'indirizzo di base e l'indirizzo del servizio, oltre a una stringa di query ?wsdl
.
Se il valore di HttpGetUrl è assoluto, gli indirizzi ai quali vengono pubblicati i metadati saranno il valore HttpGetUrl, oltre a una stringa di query ?wsdl
.
Ad esempio, se l'indirizzo del servizio è http://localhost:8080/CalculatorService
e HttpGetUrl è una stringa vuota, l'indirizzo dei metadati HTTP/GET sarà http://localhost:8080/CalculatorService?wsdl
.
Se non si attiva questa proprietà e non si modifica HttpGetUrl o non lo si imposta su un indirizzo relativo, verrà generata un'eccezione in fase di esecuzione quando l'host del servizio viene aperto senza un indirizzo di base per HTTP.