结束 SOAP 会话

若要结束会话,请求必须指定 sqlSession 标头并设置 sessionIdterminate 属性。sessionId 必须标识一个在服务器上处于可访问状态的已知会话,并且 terminate 属性必须设置为值 true

如果不存在具有指定 ID 的会话,则将返回一个具有 sqlSession 标头中 terminate 属性的 SOAP 错误。

如果请求是在启动会话之外的安全上下文或端点处执行的,则将返回 SOAP 错误,会话保持不变。

显式结束后,该会话不接受任何新请求。会话中的最后一个批完成后,会话将关闭。此批不必是实际请求会话终止时所在的批。

示例

下面的示例介绍了如何结束 SOAP 会话。若要结束会话,SOAP 客户端将发出下面所示的请求,设置已知的有效 sessionId 属性值,并将 terminate 属性的值指定为 true

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- enlist in an existing session, and terminate it -->
    <sqloptions:sqlSession terminate="true" sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

结束会话的请求可以为空,也可以包含邮件正文。如果存在正文,无论执行方法时出现什么错误,都将处理并确认终止标头。

服务器将返回一个确认响应(如下所示),以指示会话已结束。

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- response to terminating an existing session -->
    <sqloptions:sqlSession terminate="true" sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

若要确保终止操作完成,客户端通常需要扫描服务器的确认响应。如果客户端在一段合适的时间内未收到确认响应,客户端应重试终止请求。

请参阅

参考

使用 SOAP 会话
用于发送本机 XML Web 服务请求的示例应用程序
在客户端应用程序中添加 SOAP 标头

其他资源

使用 SOAP 会话

帮助和信息

获取 SQL Server 2005 帮助