Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Cet article explique comment configurer une liaison d’échange WS-Metadata personnalisée. Windows Communication Foundation (WCF) inclut quatre liaisons de métadonnées définies par le système, mais vous pouvez publier des métadonnées à l’aide de la liaison de votre choix. Cet article explique comment publier des métadonnées à l’aide de wsHttpBinding
. Cette liaison vous donne la possibilité d’exposer des métadonnées de manière sécurisée. Le code de cet article est basé sur l’exemple Prise en main.
Dans le fichier de configuration du service, ajoutez un comportement de service qui contient la balise serviceMetadata
:
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
Ajoutez un attribut behaviorConfiguration
à la balise de service qui référence ce nouveau comportement :
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior" />
Ajoutez un point de terminaison de métadonnées qui spécifie mex comme adresse, wsHttpBinding
comme liaison et IMetadataExchange comme contrat :
<endpoint address="mex"
binding="wsHttpBinding"
contract="IMetadataExchange" />
Pour vérifier que le point de terminaison d’échange de métadonnées fonctionne correctement, ajoutez une étiquette de point de terminaison dans le fichier de configuration du client :
<endpoint name="MyMexEndpoint" address="http://localhost:8000/servicemodelsamples/service/mex"
binding="wsHttpBinding"
contract="IMetadataExchange"/>
Dans la méthode Main() du client, créez une instance MetadataExchangeClient, affectez à sa propriété ResolveMetadataReferences la valeur true
, appelez GetMetadata, puis effectuez une itération au sein de la collection de métadonnées retournée :
string mexAddress = "http://localhost:8000/servicemodelsamples/service/mex";
MetadataExchangeClient mexClient = new MetadataExchangeClient("MyMexEndpoint");
mexClient.ResolveMetadataReferences = true;
MetadataSet mdSet = mexClient.GetMetadata(new EndpointAddress(mexAddress));
foreach (MetadataSection section in mdSet.MetadataSections)
Console.WriteLine("Metadata section: " + section.Dialect.ToString());
Créez une instance de liaison WSHttpBinding :
WSHttpBinding binding = new WSHttpBinding();
Créez une instance ServiceHost :
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
Ajoutez un point de terminaison de service et ajoutez une instance ServiceMetadataBehavior :
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, baseAddress);
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smb);
Ajoutez un point de terminaison d'échange de métadonnées, en spécifiant le WSHttpBinding créé précédemment :
serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), binding, mexAddress);
Pour vérifier que le point de terminaison d’échange de métadonnées fonctionne correctement, ajoutez une étiquette de point de terminaison dans le fichier de configuration de client :
<endpoint name="MyMexEndpoint" address="http://localhost:8000/servicemodelsamples/service/mex"
binding="wsHttpBinding"
contract="IMetadataExchange"/>
Dans la méthode Main() du client, créez une instance MetadataExchangeClient, affectez à la propriété ResolveMetadataReferences la valeur true
, appelez GetMetadata, puis effectuez une itération au sein de la collection de métadonnées retournée :
string mexAddress = "http://localhost:8000/servicemodelsamples/service/mex";
MetadataExchangeClient mexClient = new MetadataExchangeClient("MyMexEndpoint");
mexClient.ResolveMetadataReferences = true;
MetadataSet mdSet = mexClient.GetMetadata(new EndpointAddress(mexAddress));
foreach (MetadataSection section in mdSet.MetadataSections)
Console.WriteLine("Metadata section: " + section.Dialect.ToString());
Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenant