Discovery: UDDI
Cet exemple montre comment implémenter un client Windows Communication Foundation (WCF) qui effectue des opérations de base avec un service UDDI (Universal Description, Discovery, and Integration) v2 installé sur l'ordinateur local. Le registre UDDI fait partie des services UDDI intégrés dans Windows Server 2003.
Remarque : |
---|
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique. |
L'exemple se compose d'un programme de console client (.exe) qui communique avec un registre UDDI installé localement. L'exemple peut également communiquer avec d'autres implémentations de service de publication et d'interrogation UDDI. L'activité du client est visible dans la fenêtre de console.
Les exemples de source incluent les fichiers générés automatiquement suivants :
- UddiTypes.cs (types UDDI)
- UddiInquireClient.cs (client d'interrogation UDDI)
- UddiPublishClient.cs (client de publication UDDI)
- Vous pouvez régénérer ces fichiers pour utiliser Svcutil.exe. Il n'est pas nécessaire de régénérer ces fichiers pour exécuter l'exemple.
Pour générer les fichiers précédemment répertoriés
Téléchargez le fichier à partir de Schéma UDDI (page pouvant être en anglais) et enregistrez-le sous UddiTypes.xsd.
Générez UddiTypes.cs à l'aide de la commande suivante.
xsd.exe /classes UddiTypes.xsd
Générez UddiInquireClient.cs à l'aide de la commande suivante.
svcutil.exe /out:UddiInquireClient.cs http://uddi.org/wsdl/inquire_v2.wsdl
Ouvrez UddiInquireClient.cs et supprimez toutes les déclarations de type après (mais sans inclure) la déclaration de l'interface suivante.
public interface Inquire {...}
Assurez-vous également de supprimer toutes celles avant (mais sans inclure) la première déclaration de message typée.
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute( "System.ServiceModel", "3.0.0.0")] [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
Générez UddiPublishClient.cs à l'aide de la commande suivante.
svcutil.exe /out:UddiPublishClient.cs http://uddi.org/wsdl/publish_v2.wsdl
Ouvrez UddiPublishClient.cs et supprimez toutes les déclarations de type après (mais sans inclure) la déclaration suivante.
public interface Publish {...}
Supprimez toutes celles avant (mais n'inclure pas) la première déclaration de message typée.
[System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute( "System.ServiceModel", "3.0.0.0")] [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
Supprimez toutes les déclarations dans l'espace de noms Uddiorg.api (celles-ci ont déjà été générées dans UddiInquireClient.cs).
Le client utilise les proxys pour implémenter des opérations qui récupèrent des informations du registre UDDI :
public void Login(string username, string password)
Permet de se connecter au service de publication. Utilise l'opération get_authToken() du service de publication.public businessInfo[] GetBusinessByName(string businessName)
Recherche dans le registre UDDI les services portant les noms correspondant à la chaîne fournie. Appelle l'opération find_business() du service d'interrogation.public string PublishBusiness(string businessName, string description)
Publie une entreprise dans le registre UDDI. Utilise l'opération save_business() du service de publication.public businessInfo[] GetMyBusinesses()
Retourne toutes les entreprises publiées par un utilisateur donné. Utilise l'opération get_registeredInfo() du service de publication.public businessInfo GetMyBusinessByName(string businessName)
Retourne la première entreprise trouvée avec un nom donné publiée par un utilisateur spécifique. Appelle l'opération get_registeredInfo() du service de publication.public void DeleteMyBusinesses()
Supprime toutes les entreprises publiées par un utilisateur donné. Utilise l'opération delete_business() du service de publication.public void DeleteMyBusiness(string businessKey)
Supprime une entreprise identifiée par la clé, publiée par un utilisateur donné. Utilise les opérations registeredInfo() et delete_business() du service de publication.
Le client utilise un fichier de configuration (App.config) pour spécifier le point de terminaison et la liaison pour les services d'interrogation et de publication avec lesquels il communique. La configuration de point de terminaison client se compose d'un nom de configuration, d'une adresse absolue pour le point de terminaison de service, de la liaison et du contrat, tel qu'indiqué dans la configuration suivante.
<bindings>
<basicHttpBinding>
<binding name="Https">
<security mode="Transport">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint name="Inquire"
address="https://<machine with UDDI Services>/uddi/inquire.asmx"
binding="basicHttpBinding" bindingConfiguration="Https"
contract="Inquire" />
<endpoint name="Publish"
address="https://<machine with UDDI Services>/uddi/publish.asmx"
binding="basicHttpBinding" bindingConfiguration="Https"
contract="Publish" />
</client>
Pour configurer, générer et exécuter l'exemple
Assurez-vous que les services UDDI sont installés sur Windows Server 2003. Accédez à Ajout/Suppression de programmes, Ajouter ou supprimer des composants Windows, puis assurez-vous que la case Services UDDI est activée. Si ce n'est pas le cas, cochez-la et suivez les instructions de l'Assistant pour installer les services UDDI.
Assurez-vous d'avoir effectué la procédure indiquée dans la section Procédure d'installation unique pour les exemples Windows Communication Foundation.
Pour générer l'édition C# ou Visual Basic .NET de la solution, suivez les instructions indiquées dans Génération des exemples Windows Communication Foundation.
Si l'utilisateur du client UDDI ne dispose pas des informations d'identification correctes pour s'authentifier auprès des services UDDI, un utilisateur local (sur l'ordinateur sur lequel les services UDDI sont installés) doit être créé, et l'élément <appSettings> du fichier de configuration App.config doit être mis à jour.
Par défaut, les opérations de publication UDDI sont uniquement réservées aux administrateurs locaux. Assurez-vous qu'un utilisateur récemment créé peut accéder au service de publication UDDI, en lui attribuant des privilèges d'administrateur local ou en modifiant le rôle en Publisher Group Name dans la console des services UDDI afin d'inclure le compte d'utilisateur. Pour effectuer cette dernière opération, ouvrez la console des services UDDI, cliquez avec le bouton droit sur le nœud Services UDDI, sélectionnez l'onglet Rôles, puis le compte de l'éditeur.
Pour exécuter l'exemple dans une configuration à un ou plusieurs ordinateurs, suivez les instructions indiquées dans Exécution des exemples Windows Communication Foundation.
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.