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.
Hinweis: |
---|
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