启动 SOAP 会话

若要启动会话,客户端请求必须包含 sqlSession 标头,并指定启动属性的值为 True。如果成功地建立了会话,则服务器的响应将包含会话标头,它使用服务器生成的 Cookie 指定 sessionId

会话发起方的安全凭据与会话相关联,并且必须以相同凭据执行会话中的所有后续请求。

如果 SOAP 会话所使用的 HTTP 端点已指定了 DATABASE 子句,则此设置仅对启动会话的请求有效。后续请求在会话的当前数据库下执行。

ms190712.note(zh-cn,SQL.90).gif注意:
SOAP 会话与连接无关,可以在 SQL Server 2005 连接之外进行。SOAP 会话不对服务器的最大连接数进行计数。

示例

下面的示例说明了如何启动 SOAP 会话。启动 SOAP 会话后,将使用下列消息:

  • Web 服务客户端发送的请求会话的 SOAP 请求
  • 服务器返回的确认请求的 SOAP 响应

下面是客户端将发送的 SOAP 请求的示例。

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

请注意,选项名区分大小写;因此,正确的字符串必须包含大写 S,因为 sqlSession 之前已编码。

若要启动会话,服务器将返回下列请求。

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

在此示例中,只要所请求的超时值小于或等于 HTTP 端点处设置的服务器最大会话超时值,服务器将允许客户端请求的超时间隔并在响应中回显相同的值 ("12")。如果请求中客户端指定的超时间隔大于服务器的最大超时值,则将在对客户端的响应中指定服务器最大超时值。

请参阅

参考

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

其他资源

使用 SOAP 会话

帮助和信息

获取 SQL Server 2005 帮助