Iniciar una sesión SOAP
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 el sessionId con un cookie generado por el servidor.
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 2005. 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.
Vea también
Referencia
Usar una sesión SOAP
Enviar solicitudes de servicios Web XML nativos mediante aplicaciones de ejemplo
Agregar encabezados SOAP a aplicaciones cliente