结束 SOAP 会话
若要结束会话,请求必须指定 sqlSession 标头并设置 sessionId 和 terminate 属性。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 标头