ServiceMetadataBehavior.HttpGetEnabled Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique si les métadonnées du service doivent être publiées pour être récupérées à l'aide d'une requête 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
Valeur de propriété
true
si le langage WSDL est publié ; sinon, false
. La valeur par défaut est false
.
Exemples
L'exemple de code suivant illustre l'objet ServiceMetadataBehavior dans un fichier de configuration pour activer la prise en charge des métadonnées pour les demandes HTTP/GET et 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>
Remarques
Si la valeur de HttpGetUrl est relative, l'adresse à laquelle les métadonnées sont publiées correspond à l'adresse de base et à l'adresse de service, plus une chaîne de requête ?wsdl
.
Si la valeur de HttpGetUrl est absolue, l'adresse à laquelle les métadonnées sont publiées correspond à la valeur de HttpGetUrl plus une chaîne de requête ?wsdl
.
Par exemple, si l'adresse du service correspond à http://localhost:8080/CalculatorService
et HttpGetUrl à une chaîne vide, l'adresse des métadonnées HTTP/GET est http://localhost:8080/CalculatorService?wsdl
Si vous n'activez pas cette propriété et ne modifiez pas HttpGetUrl ou lui affectez une adresse relative, une exception est levée à l'exécution lorsque l'hôte de service est ouvert sans adresse de base pour HTTP.