Запуск сеанса SOAP
Для запуска сеанса клиентский запрос должен включать заголовок sqlSession, а также указать атрибут запуска при помощи значения true. Если сеанс устанавливается успешно, ответ сервера будет содержать заголовок сеанса, указывающий идентификатор sessionId при помощи сформированного на сервере файла «cookie».
С сеансом связываются учетные данные безопасности инициатора сеанса, и все последующие запросы сеанса выполняются с теми же учетными данными.
Если конечная точка HTTP, обслуживающая сеанс SOAP, указала предложение DATABASE, то эта настройка оказывает эффект только для запроса, инициирующего сеанс. Последующие запросы выполняются в текущей базе данных сеанса.
Примечание. |
---|
Сеансы SOAP не зависят от соединения, и их длительность может превышать срок жизни соединений SQL Server 2005. Сеансы SOAP не учитываются счетчиком максимального числа соединений сервера. |
Пример
В следующем примере демонстрируется, как запустить сеанс SOAP. При запуске сеанса SOAP используются следующие сообщения:
- Запрос SOAP, отправленный клиентом веб-служб для запроса сеанса
- Ответ SOAP, возвращенный сервером для подтверждения запроса
Далее приведен пример запроса SOAP, который может быть отправлен клиентом.
<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>
Обратите внимание, что имя параметра чувствительно к регистру; таким образом, точная строка должна включать заглавную букву S, как sqlSession
в предыдущем коде.
Для запуска сеанса сервер должен возвратить следующий запрос.
<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>
В этом примере, если запрошенное значение времени ожидания меньше или равно максимальному значению времени ожидания для сеанса, установленному сервером на конечной точке HTTP, то сервер учитывает время ожидания, запрошенное клиентом, и возвращает то же значение ("12"
). Если время ожидания, указанное клиентом в запросе, больше максимального значения времени ожидания для сервера, то в ответе клиенту содержится максимальное значение времени ожидания для сервера.
См. также
Справочник
Работа с сеансами SOAP
Образцы приложений, отправляющих запросы к собственным веб-службам с поддержкой XML
Добавление заголовков SOAP в клиентские приложения