Utilisation de l'application WSDL personnalisée
Pour configurer l'exemple d'application WSDL personnalisée, vous devez effectuer les tâches suivantes :
- Créer une application gestionnaire WSDL personnalisée pour la prise en charge de votre propre WSDL.
Pour effectuer cette tâche, consultez Création de l'application WSDL personnalisée. - Configurer votre installation de SQL Server 2005 pour qu'elle enregistre et utilise le gestionnaire WSDL personnalisé.
Cette tâche implique la création d'un script de déploiement qui apporte les modifications suivantes à votre installation de SQL Server 2005 :
- ajoute l'assembly personnalisé WSDL (CustomWSDL.dll) au serveur et l'inscrit pour l'utiliser avec l'instruction ADD ASSEMBLY ;
- crée les éventuelles procédures stockées supplémentaires dont dépend votre application gestionnaire WSDL personnalisée pour fonctionner correctement ;
- crée ou modifie un point de termination HTTP sur l'instance de SQL Server pour qu'il utilise votre gestionnaire WSDL personnalisé et renvoie une réponse WSDL personnalisée au lieu de la réponse par défaut ou d'une réponse WSDL simple.
Déploiement du gestionnaire WSDL personnalisé
La procédure suivante suppose que vous êtes connecté en tant qu'administrateur local sur un ordinateur exécutant SQL Server 2005 ou que vous pouvez vous connecter à ce dernier à distance avec des privilèges administratifs.
Première partie : Configurer le serveur
Dans SQL Server Management Studio, cliquez sur Nouvelle requête et connectez-vous au serveur.
Copiez le script Transact-SQL suivant dans la fenêtre Requête.
USE master GO -- Drop myWSDL procedure if it exists. IF (SELECT count(*) FROM sysobjects WHERE name = 'myWSDL') = 1 DROP PROCEDURE myWSDL GO -- Drop CustomWSDL assembly if it exists. DROP ASSEMBLY CustomWSDL GO -- Update the path to the compiled assembly as necessary. CREATE ASSEMBLY CustomWSDL FROM 'C:\temp\CustomWSDL.dll' GO -- Create a stored procedure to map to the common lanugage -- runtime (CLR) method As with any other SQL Server stored procedure -- that maps to a CLR method, the actual stored procedure name -- ('myWSDL') can be arbitrarily specified. CREATE PROCEDURE myWSDL ( @endpointID as int, @isSSL as bit, @host as nvarchar(256), @queryString as nvarchar(256), @userAgent as nvarchar(256) ) AS EXTERNAL NAME CustomWSDL.[MSSql.CustomWSDL].GenerateWSDL GO -- Follow the security guidelines set up for your environment. -- The following example is meant to be used for development or -- testing purposes only. GRANT EXEC on myWSDL to [PUBLIC] GO -- The following is a sample stored procedure (InOut) that -- demonstrates the configuration of an HTTP endpoint. -- If the InOut stored procedure already exists, it is dropped. IF (SELECT count(*) FROM sysobjects WHERE name = 'InOut') = 1 DROP PROC InOut GO CREATE PROC InOut @InParam int, @OutParam nvarchar(100) output AS SELECT * FROM syslanguages WHERE langid = @InParam SELECT @OutParam = [name] FROM syslanguages WHERE langid = @InParam PRINT @OutParam SELECT * FROM syslanguages WHERE langid = @InParam FOR XML raw, XMLSCHEMA RETURN 1 GO GRANT EXEC on InOut to [PUBLIC] -- The following creates a sample HTTP endpoint to demonstrate -- the endpoint setup. If the sample endpoint already exists, it -- is first dropped. IF (SELECT count(*) FROM [msdb].sys.http_endpoints WHERE name = 'sql_endpoint') = 1 DROP ENDPOINT sql_endpoint GO CREATE ENDPOINT sql_endpoint STATE=STARTED AS HTTP ( SITE='*', PATH='/sql/WSDL', PORTS=(CLEAR), CLEAR_PORT=80, AUTHENTICATION=(DIGEST, INTEGRATED) ) FOR SOAP ( WEBMETHOD 'http://myNS.com/'.'InOut' ( NAME='master.dbo.InOut' ), DATABASE = 'master', WSDL='master.dbo.myWSDL', Batches=enabled, SCHEMA = STANDARD ) GRANT CONNECT ON ENDPOINT::sql_endpoint to [PUBLIC]
Exécutez le script.
Deuxième partie : Test du gestionnaire
Pour vous assurer que le gestionnaire WSDL personnalisé fonctionne correctement, essayez d'utiliser les chaînes de requête d'URL modifiées pour demander un WSDL personnalisé. Par exemple, si l'instance de SQL Server 2005 à laquelle vous vous connectez se nomme MyServer
et que vous exécutez le script précédent, il doit y avoir sur le serveur un chemin de point de terminaison sql/WSDL
, et vous obtiendrez une réponse en utilisant le gestionnaire WSDL personnalisé. Par conséquent, pour tester la connexion à ce point de terminaison et créer une demande WSDL personnalisée, vous allez utiliser une URL de la forme suivante dans le client navigateur Web HTTP :
http://MyServer/sql/WSDL?wsdlargument
La valeur de argument peut être n'importe lequel des identifiants WSDL personnalisés suivants qui prend en charge les chaînes correspondant à chacun des types de WSDL et de client.
URL WSDL personnalisée | Description |
---|---|
|
Pour les clients Web simples créés à l'aide des outils de développement Visual Studio 2003. |
|
Pour les clients Web simples créés à l'aide des outils de développement Borland JBuilder 9.0. |
|
Pour les clients Web simples créés à l'aide des outils de développement webMethods Glue 5.0.1. |
Comme l'indique le tableau suivant, la valeur <argument>
renvoie un WSDL simple (tous types XSD natifs) pour ces trois choix personnalisés ; si toutefois vous souhaitez le WSDL étendu dans son ensemble, vous pouvez ajouter extended
à la chaîne d'argument de la requête.
Identifiant WSDL simple | Identifiant WSDL étendu |
---|---|
|
|
|
|
|
|
Voir aussi
Tâches
Liste du code C# de l'application WSDL personnalisée
Référence
Mise en œuvre d'une prise en charge WSDL personnalisée
Création de l'application WSDL personnalisée
Concepts
Méthodes préconisées pour l'utilisation des services Web XML natifs