使用 SOAP 会话

为了在现有会话的上下文中执行 SOAP 请求,必须在向服务器提出的 SOAP 会话请求中指定以下内容:

  • 服务器以前提供给客户端的同一会话 ID。
  • 以前启动了 SOAP 会话的端点的相应 HTTP 端点 ID。
  • 相同的用户上下文。是 Windows 用户还是 SQL Server 用户取决于 SOAP 属性中针对端点支持的 LOGIN_TYPE。

如果指定的会话标识符不存在或者格式不正确,则返回 SOAP 错误消息,并且返回的 sqlSession 元素的标头中包含 terminate 属性。否则,服务器通过返回客户端在请求中发送的 sqlSession 标头来响应。

如果执行请求的上下文或端点不是启动会话时的安全上下文或端点,则返回 SOAP 错误。在响应中,将指定表示 SOAP 层终止的 SOAP 错误代码,而在 sqlSession 标头中,terminate 属性值为 true

此外,为防止恶意用户终止现有会话,人们会设置 terminate 属性,而且只要服务器发现请求中要登记的会话属于未知会话,它就会返回 SOAP 错误作为唯一的响应消息。

示例

下面是一个登记 SOAP 会话的示例。其中说明了客户端在请求登记到现有的 SOAP 会话时发送的 SOAP 消息的格式。请注意,实际的 sessionId 值将是一个会话特定的标识符。

<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 -->
    <sqloptions:sqlSession sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

如果会话可以访问,则服务器将该消息原样返回给客户端;如果请求中标识的会话无法访问,则服务器向客户端返回 SOAP 错误。

请参阅

参考

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

概念

启动 SOAP 会话

其他资源

使用 SOAP 会话

帮助和信息

获取 SQL Server 2005 帮助