Запуск сеанса SOAP

Для запуска сеанса клиентский запрос должен включать заголовок sqlSession, а также указать атрибут запуска при помощи значения true. Если сеанс устанавливается успешно, ответ сервера будет содержать заголовок сеанса, указывающий идентификатор sessionId при помощи сформированного на сервере файла «cookie».

С сеансом связываются учетные данные безопасности инициатора сеанса, и все последующие запросы сеанса выполняются с теми же учетными данными.

Если конечная точка HTTP, обслуживающая сеанс SOAP, указала предложение DATABASE, то эта настройка оказывает эффект только для запроса, инициирующего сеанс. Последующие запросы выполняются в текущей базе данных сеанса.

ms190712.note(ru-ru,SQL.90).gifПримечание.
Сеансы 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 в клиентские приложения

Другие ресурсы

Работа с сеансами SOAP

Справка и поддержка

Получение помощи по SQL Server 2005