Freigeben über


Initiieren einer SOAP-Sitzung

Damit eine Sitzung initiiert werden kann, muss eine Clientanforderung den sqlSession-Header enthalten und das initiate-Attribut mit dem Wert true angeben. Nachdem eine Sitzung erfolgreich eingerichtet wurde, enthält die Antwort vom Server den Sitzungsheader, der die sessionId mit einem vom Server generierten Cookie angibt.

Die Sicherheitsanmeldeinformationen des Sitzungsinitiators werden mit der Sitzung verknüpft, und alle nachfolgenden Anforderungen innerhalb der Sitzung müssen unter den gleichen Anmeldeinformationen ausgeführt werden.

Wenn für den HTTP-Endpunkt, der die SOAP-Sitzung bedient, eine DATABASE-Klausel angegeben wurde, wird diese Einstellung nur für die Anforderung wirksam, die die Sitzung initiiert. Nachfolgende Anforderungen werden unter der aktuellen Datenbank der Sitzung ausgeführt.

ms190712.note(de-de,SQL.90).gifHinweis:
SOAP-Sitzungen sind verbindungsunabhängig und können SQL Server 2005-Verbindungen überdauern. SOAP-Sitzungen werden bei der maximal zulässigen Anzahl von Verbindungen für den Server nicht berücksichtigt.

Beispiel

Das folgende Beispiel zeigt, wie eine SOAP-Sitzung initiiert wird: Wenn eine SOAP-Sitzung initiiert wird, werden die folgenden Nachrichten verwendet:

  • Die SOAP-Anforderung, die vom Webdiensteclient zum Anfordern einer Sitzung gesendet wurde.
  • Die SOAP-Antwort, die vom Server zum Bestätigen der Anforderung zurückgegeben wurde.

Das folgende Beispiel zeigt die SOAP-Anforderung, die von einem Client gesendet wird.

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- create a new session, with explicit timeout -->
    <sqloptions:sqlSession initiate="true" timeout="12"/>
</SOAP-ENV:Header>

Beachten Sie, dass für den Optionsnamen Groß- und Kleinschreibung unterschieden wird; die genaue Zeichenfolge muss daher den Großbuchstaben S enthalten, weil sqlSession zuvor codiert wurde.

Um die Sitzung zu initiieren, gibt der Server anschließend die folgende Anforderung zurück.

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- response to creating a new session, or enlisting in an existing session -->
    <sqloptions:sqlSession sessionId="AAAAADreaLE=" timeout="12"/>
</SOAP-ENV:Header>

In diesem Beispiel beachtet der Server das vom Client angeforderte Timeoutintervall und verwendet als Echo den gleichen Wert ("12") in der Antwort, wenn der angeforderte Timeoutwert kleiner oder gleich dem maximalen Timeoutwert für die Sitzung ist, der auf dem Server auf dem HTTP-Endpunkt festgelegt wurde. Wenn das vom Client in der Anforderung angegebene Timeoutintervall größer als der maximale Timeoutwert für den Server ist, wird der maximale Timeoutwert des Servers in der Antwort an den Client angegeben.

Siehe auch

Verweis

Verwenden einer SOAP-Sitzung
Beispielanwendungen für das Senden systemeigener XML-Webdiensteanforderungen
Hinzufügen von SOAP-Headern zu Clientanwendungen

Andere Ressourcen

Arbeiten mit SOAP-Sitzungen

Hilfe und Informationen

Informationsquellen für SQL Server 2005