Comment : activer la découverte pour les services Web XML
Les services Web peuvent être publiés sur les clients potentiels des façons suivantes :
À l'aide d'un fichier de découverte XML avec une extension .disco.
À l'aide d'une URL qui spécifie une extension .vsdisco.
À l'aide d'un service Web avec une chaîne de requête de ?DISCO.
Cette rubrique montre comment configurer le premier de ces deux mécanismes de découverte. Cette rubrique ne montre pas comment activer les demandes pour un service Web avec une chaîne de requête de ?DISCO, car cette méthode est déjà automatiquement disponible. Pour obtenir une explication sur ces options, consultez Publication et déploiement des services Web XML.
Pour publier un document de découverte statique pour un service Web
Créez un document XML dans votre éditeur en ajoutant l'élément ?xml version="1.0" ? à la première ligne.
Dans le document XML, ajoutez un élément discovery tel que
<disco:discovery xmlns:disco="https://schemas.xmlsoap.org/disco/"> </disco:discovery>
Dans l'élément discovery, ajoutez des références aux descriptions de service, aux schémas XSD et aux autres documents de découverte.
Vous pouvez ajouter autant de références à exposer publiquement que vous le souhaitez. Les références à la description de service sont spécifiées dans un document de découverte par l'ajout d'un élément contractRef avec l'espace de noms XML
https://schemas.xmlsoap.org/disco/scl/
. De même, les références aux autres documents de découverte et aux schémas XSD sont spécifiées par l'ajout des éléments XML discoveryRef et schemaRef. Pour les références aux schéma XSD, l'espace de noms XMLhttps://schemas.xmlsoap.org/disco/schema
doit être spécifié. Pour les trois types de documents référencés, spécifiez l'emplacement du document à l'aide de l'attribut ref. L'exemple de code suivant a des références à un document de découverte, une description de service et un schéma XSD.<?xml version="1.0"?> <discovery xmlns="https://schemas.xmlsoap.org/disco/"> <discoveryRef ref="/Folder/Default.disco"/> <contractRef ref="http://MyWebServer/UserName.asmx?WSDL" docRef="Service.htm" xmlns="https://schemas.xmlsoap.org/disco/scl/"/> <schemaRef ref="Schema.xsd" xmlns="https://schemas.xmlsoap.org/disco/schema/"/> </discovery>
Les références peuvent être relatives au répertoire où le document de découverte réside, comme indiqué dans l'élément discoveryRef, ou à un URI, comme indiqué dans l'élément contractRef.
Déployez le document de découverte sur un serveur Web en le copiant dans un répertoire virtuel sur le serveur Web.
Éventuellement, si vous souhaitez autoriser des consommateurs potentiels à naviguer jusqu'à une URL en spécifiant une application IIS sans devoir spécifier un document, vous pouvez ajouter un lien à la page par défaut pour l'application IIS. L'avantage est que les consommateurs potentiels n'ont pas à connaître le nom des documents de découverte. Les utilisateurs peuvent ensuite fournir des URL telles que les suivantes pendant le processus de découverte :
http://MyWebServer/MyWebApplication
Si la page par défaut pour l'application Web est une page HTML, ajoutez un lien vers le document de découverte dans l'élément head de la page Web par défaut pour le serveur Web. Par exemple, si vous nommez votre document de découverte
MyWebService.disco
et le placez dans le même répertoire que la page par défaut, vous devez placer l'élément suivant dans la page Web par défaut :<HEAD> <link type='text/xml' rel='alternate' href='MyWebService.disco'/> </HEAD>
Si la page par défaut pour l'application Web est un document XML, ajoutez un lien vers le document de découverte dans l'élément head de la page Web par défaut pour le serveur Web. Par exemple, si vous nommez votre document de découverte
MyWebService.disco
et le placez dans le même répertoire que la page par défaut, vous devez placer l'élément suivant en haut de la page par défaut :<?xml-stylesheet type="text/xml" alternate="yes" href="MyWebService.disco" ?>
Pour activer la découverte dynamique pour un service Web
Pour activer la découverte dynamique pour un serveur Web, modifiez le fichier machine.config en ajoutant l'élément <add> suivant. Ignorez les sauts de ligne dans l'exemple suivant, car l'attribut type doit être sur une seule ligne.
<configuration> <system.web> <httpHandlers> <add verb="*" path="*.vsdisco" type="System.Web.Services.Discovery.DiscoveryRequestHandler, System.Web.Services, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/> </httpHandlers> </system.web> </configuration>
Remarque : Lorsque la découverte dynamique est activée, tous les services Web et documents de découverte existant sur le serveur Web sous l'URL demandée sont découvrables. Par conséquent, il faut procéder avec précaution pour activer la découverte dynamique, car elle peut exposer des données sensibles si le serveur Web n'est pas sur un réseau utilisant un pare-feu et d'autres fonctionnalités de sécurité.
Voir aussi
Concepts
Publication et déploiement des services Web XML
Options de configuration pour les services Web XML créés à l'aide d'ASP.NET
Autres ressources
Services Web XML utilisant ASP.NET
Copyright ©2007 par Microsoft Corporation. Tous droits réservés.