Share via


Iniciar una sesión SOAP

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Para iniciar una sesión, la solicitud de un cliente debe incluir el encabezado sqlSession y especificar el atributo de inicio con un valor de true. Si una sesión se establece correctamente, la respuesta del servidor contiene el encabezado de sesión que especifica un valor generado por el servidor para la propiedad sessionID.

Las credenciales de seguridad del iniciador de sesión se asocian a la sesión, y todas las solicitudes posteriores de la sesión se deben ejecutar con las mismas credenciales.

Si el extremo HTTP que da servicio a la sesión SOAP ha especificado una cláusula DATABASE, esta configuración sólo tiene efecto para la solicitud que inicia la sesión. Las solicitudes posteriores se ejecutan en la base de datos actual de la sesión.

[!NOTA]

Las sesiones SOAP son independientes de las conexiones y pueden durar más que las conexiones de SQL Server. Las sesiones SOAP no cuentan para el número máximo de conexiones para el servidor.

Ejemplo

En el siguiente ejemplo se muestra cómo iniciar una sesión SOAP. Cuando se inicia una sesión SOAP, se utilizan los siguientes mensajes:

  • La solicitud SOAP enviada por el clientes de los servicios Web para solicitar una sesión

  • La respuesta SOAP devuelta por el servidor para confirmar la solicitud

A continuación se muestra un ejemplo de la solicitud SOAP que se enviaría al cliente.

<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>

Tenga en cuenta que el nombre de la opción distingue entre mayúsculas y minúsculas y, por lo tanto, la cadena exacta debe incluir la S mayúscula, ya que sqlSession se ha codificado previamente.

Para iniciar la sesión, el servidor debe devolver la siguiente solicitud.

<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>

En este ejemplo, mientras el valor de tiempo de espera es inferior o igual al tiempo de espera máximo de la sesión establecido en el servidor en el extremo HTTP, el servidor respetará el intervalo de tiempo de espera solicitado por el cliente y mostrará el mismo valor ("12") en la respuesta. Si el intervalo del tiempo de espera especificado por el cliente en la solicitud es superior al tiempo de espera máximo del servidor, el tiempo de espera máximo del servidor se especifica en la respuesta al cliente.