Ajout d'en-têtes SOAP à des applications clientes

Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

SQL Server prend en charge les en-têtes d'extension SOAP lorsque vous utilisez les services Web XML natifs. Ces en-têtes peuvent être utilisés pour étendre et améliorer vos applications SOAP à l'aide des options SQL et d'autres en-têtes d'extension SOAP qui sont gérés, tels que les sessions SOAP et la sécurité des services Web. Pour plus d'informations, consultez En-têtes d'extension SOAP.

Cette rubrique présente un exemple de bibliothèque de classes qui met en œuvre tous les en-têtes d'extension SOAP facultatifs qui sont gérés par SQL Server. Cette bibliothèque peut être ajoutée aux projets de clients SOAP Visual Studio 2005 existants. Il s'agit notamment des exemples d'applications fournis dans la rubrique Exemples d'applications pour l'envoi de demandes de services Web XML natifs.

Qui plus est, nous vous conseillons de lire les rubriques suivantes si vous utilisez des en-têtes qui prennent en charge la sécurité ou les sessions à l'aide des en-têtes d'extension SOAP appropriés pour chacune de ces fonctions.

Notes

La procédure décrite ci-après suppose que vous avez créé une application cliente SOAP à l'aide de Visual Studio 2005 et que vous avez ajouté une référence Web à un point de terminaison SOAP créé précédemment à l'aide de SQL Server, comme l'explique la rubrique Envoi de demandes SOAP à l'aide du client Visual Studio 2005 (C#).

Pour ajouter l'exemple de bibliothèque d'en-têtes d'extension SOAP à un projet Visual Studio

  1. Utilisez le Bloc-notes pour copier et coller le contenu de Séquence de code C# pour la bibliothèque de classes d'exemples d'en-tête SQL SOAP et enregistrez-le sous le nom « SqlSoapHeader.cs » dans le dossier qui contient les fichiers projet de votre client SOAP.

  2. Sur l'ordinateur client, à partir du groupe de programmes Microsoft Visual Studio 2005, démarrez Microsoft Visual Studio 2005.

  3. Cliquez sur Ouvrir un projet.

  4. Recherchez et sélectionnez votre fichier projet (.csproj) de client SOAP.

  5. Dans la fenêtre de l'Explorateur de solutions, procédez comme suit :

    1. Sélectionnez le projet, cliquez avec le bouton droit et pointez sur Ajouter, puis sélectionnez Ajouter un élément existant.

    2. Dans la boîte de dialogue Ajouter un élément existant, sélectionnez le fichier SqlSoapHeader.cs à l'emplacement où vous l'aviez enregistré à l'étape 1.

    3. Sélectionnez Afficher tous les fichiers, développez le nœud Références Web, puis sélectionnez le fichier Reference.cs.

  6. Dans la fenêtre de l'Éditeur de code, mettez à jour le fichier Reference.cs pour ajouter une variable publique à la classe de définition de point de terminaison. La variable doit appartenir à la même classe SqlSoapHeader que le type d'en-tête SOAP facultatif.

    Par exemple, pour ajouter une variable de propriété publique appelée « sqlSecurity » de la classe SqlSoapHeader.Security au fichier Reference.cs sous la définition de classe de point de terminaison (« sql_endpoint »), vous devez ajouter la ligne de code suivante :

    public class sql_endpoint : System.Web.Services.Protocols.SoapHttpClientProtocol {
         public SqlSoapHeader.Security  sqlSecurity
    
  7. Ajoutez la propriété SoapHeaderAttribute appropriée à la méthode Web pour laquelle vous voulez activer l'en-tête SOAP.

    Par exemple, si vous implémentez la classe Security, vous devez alors ajouter la ligne de code suivante :

    [System.Web.Services.Protocols.SoapHeaderAttribute("sqlSecurity")]
    public int UDFReturningAScalar() {...}
    

    Notes

    Dans cet exemple, la valeur d'argument sqlSecurity qui est utilisée avec SoapHeaderAttribute doit correspondre au nom de variable qui a été utilisé à l'étape précédente.