Freigeben über


Hinzufügen von SOAP-Headern zu Clientanwendungen

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.

SQL Server bietet Unterstützung für SOAP-Erweiterungsheader, wenn Sie systemeigene XML-Webdienste verwenden. Diese Header können zum Erweitern und Optimieren Ihrer SOAP-basierten Anwendungen verwendet werden, indem Sie SQL-Optionen und andere unterstützte SOAP-Erweiterungsheader verwenden, z. B. SOAP-Sitzungen und Web Services Security (WS-Security). Weitere Informationen finden Sie unter SOAP-Erweiterungsheader.

Dieses Thema enthält eine Beispielklassenbibliothek, die die einzelnen optionalen SOAP-Erweiterungsheader implementiert, die von SQL Server unterstützt werden. Diese Bibliothek kann vorhandenen Visual Studio 2005-SOAP-Clientprojekten hinzugefügt werden. Dies schließt die Beispielanwendungen ein, die in Beispielanwendungen für das Senden systemeigener XML-Webdiensteanforderungen bereitgestellt werden.

Außerdem sollten Sie die folgenden Themen lesen, wenn Sie mit Headern arbeiten, die entweder Sicherheits- oder Sitzungsunterstützung durch Verwenden der geeigneten SOAP-Erweiterungsheader für die entsprechenden Features implementieren.

HinweisHinweis

Das folgende Verfahren geht davon aus, dass Sie eine vorhandene SOAP-Clientanwendung mit Visual Studio 2005 erstellt und einen Webverweis auf einen HTTP SOAP-Endpunkt hinzugefügt haben, der mit SQL Server wie unter Senden von SOAP-Anforderungen mithilfe des Visual Studio 2005-Clients (C#) gezeigt erstellt wurde.

So fügen Sie einem Visual Studio-Projekt die Beispielbibliothek für SOAP-Erweiterungsheader hinzu

  1. Kopieren Sie mit Editor den Inhalt unter C#-Code-Auflistung für SQL SOAP-Header-Beispielklassenbibliothek, fügen Sie ihn ein, und speichern Sie ihn dann unter dem Namen "SqlSoapHeader.cs" im gleichen Ordner, der auch die SOAP-Clientprojektdateien enthält.

  2. Starten Sie auf dem Clientcomputer Microsoft Visual Studio 2005 über die Programmgruppe Microsoft Visual Studio 2005.

  3. Klicken Sie auf Projekt öffnen.

  4. Suchen Sie die SOAP-Clientprojektdatei (CSPROJ-Datei), und wählen Sie diese dann aus.

  5. Führen Sie im Fenster des Projektmappen-Explorers die folgenden Schritte aus:

    1. Wählen Sie das Projekt anhand des Namens aus, klicken Sie mit der rechten Maustaste, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Vorhandenes Element hinzufügen.

    2. Suchen Sie im Dialogfeld Vorhandenes Element hinzufügen die Datei SqlSoapHeader.cs in dem Ordner, in dem Sie sie in Schritt 1 gespeichert haben, und wählen Sie diese dann aus.

    3. Wählen Sie Alle Dateien anzeigen aus, und erweitern Sie dann den Knoten Webverweise. Wählen Sie die Datei Reference.cs aus.

  6. Aktualisieren Sie im Fenster des Code-Editors die Datei Reference.cs, um der Endpunkt-Definitionsklasse eine öffentliche Variable hinzuzufügen. Die Variable muss der gleichen SqlSoapHeader-Klasse angehören wie der Typ des optionalen SOAP-Headers.

    Wenn Sie der Datei Reference.cs z. B. eine öffentliche Eigenschaftenvariable namens "sqlSecurity" aus der SqlSoapHeader.Security-Klasse unter der Endpunkt-Klassendefinition ("sql_endpoint") hinzufügen möchten, fügen Sie die folgende Codezeile hinzu:

    public class sql_endpoint : System.Web.Services.Protocols.SoapHttpClientProtocol {
         public SqlSoapHeader.Security  sqlSecurity
    
  7. Fügen Sie der Webmethode, für die Sie den SOAP-Header aktivieren möchten, die entsprechende SoapHeaderAttribute-Eigenschaft hinzu.

    Wenn Sie z. B. die Security-Klasse implementieren, fügen Sie die folgende Codezeile hinzu:

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

    In diesem Beispiel muss der Argumentwert von sqlSecurity , der zusammen mit SoapHeaderAttribute verwendet wird, dem Variablennamen entsprechen, der im vorherigen Schritt verwendet wurde.