Share via


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

  1. Dans SQL Server Management Studio, cliquez sur Nouvelle requête et connectez-vous au serveur.

  2. 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]
    
  3. 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

everett

Pour les clients Web simples créés à l'aide des outils de développement Visual Studio 2003.

jbuilder

Pour les clients Web simples créés à l'aide des outils de développement Borland JBuilder 9.0.

glue

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

http://MyServer/sql/WSDL?wsdleverett

http://MyServer/sql/WSDL?wsdleverettextended

http://MyServer/sql/WSDL?wsdljbuilder

http://MyServer/sql/WSDL?wsdljbuilderextended

http://MyServer/sql/WSDL?wsdlglue

http://MyServer/sql/WSDL?wsdlglueextended

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

Aide et Informations

Assistance sur SQL Server 2005