ServiceMetadataBehavior.HttpGetEnabled Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.