启动 SOAP 会话
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
若要启动会话,客户端请求必须包含 sqlSession 标头,并指定启动属性的值为 True。如果成功地建立了会话,则服务器的响应将包含会话标头,该标头指定服务器为 sessionID 属性生成的值。
会话发起方的安全凭据与会话相关联,并且必须以相同凭据执行会话中的所有后续请求。
如果 SOAP 会话所使用的 HTTP 端点已指定了 DATABASE 子句,则此设置仅对启动会话的请求有效。后续请求在会话的当前数据库下执行。
注意 |
---|
SOAP 会话与连接无关,可以在 SQL Server 连接之外进行。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")。如果请求中客户端指定的超时间隔大于服务器的最大超时值,则将在对客户端的响应中指定服务器最大超时值。