Inicjowanie sesji protokołu SOAP
Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.
Do zainicjowania sesja, musi zawierać żądanie klient sqlSession nagłówek i określ initiate atrybut o wartości true.Jeśli sesja zostanie pomyślnie ustanowione, odpowiedź z serwera zawiera nagłówek sesji, który określa wartość serwera wygenerowany dla sessionID właściwość.
Poświadczenia zabezpieczeń inicjatora sesja są skojarzone z sesja, a wszystkie kolejne żądania w sesja muszą być wykonane w ramach tych samych poświadczeń.
Jeśli punkt końcowy HTTP, który sesja protokołu SOAP usług została określona klauzula bazy danych, to ustawienie zostanie zastosowana dla żądania, który inicjuje sesja.Kolejne żądania wykonać w bieżącej bazie danych sesja.
Ostrzeżenie
Sesje SOAP są niezależne od połączenia i można out ostatnio SQL Server połączenia.Sesje protokołu SOAP nie liczą się przeciwko liczba maksymalna liczba połączeń serwera.
Przykład
Poniższy przykład pokazuje sposób inicjowania sesja protokołu SOAP.Po zainicjowaniu sesja protokołu SOAP są używane następujące komunikaty:
Żądanie protokołu SOAP, przesyłanych przez klient usługi sieci Web na żądanie sesja
Zwrócone przez serwer, aby potwierdzić odpowiedź protokołu SOAP
Poniżej przedstawiono przykład żądanie protokołu SOAP, wysłanej przez klient.
<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>
Należy zauważyć, że nazwa opcji jest przypadek wrażliwych; Dlatego dokładny ciąg musi zawierać wielkie litery S, jako sqlSession jest uprzednio zakodowane.
Aby rozpocząć sesja, serwer zwróci następnie następujące żądanie.
<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>
W tym przykładzie tak długo, jak czas-poza żądana wartość jest mniejsza niż maksymalna sesja czas-spoza zestawu na serwerze HTTP końcowego, serwer będzie honorować czas-out interwał żądana przez klient i taką samą wartość echo ("12") w odpowiedzi.Jeśli czas-poza interwał określony przez klient w żądaniu jest większy niż maksymalna czas-limit dla serwera, serwer maksymalnej czas-out jest określona w odpowiedzi do klient.