SOAP 会话的支持机制

所有 SOAP 会话都是通过包含可选 sqlSession 标头以包含 SOAP 会话的所有相关信息的服务器和客户端之间的请求/响应消息对发生的。sqlSession 区分大小写,是 sqloptions 命名空间的一部分。

在服务器启动 SOAP 会话后,会话将存储在 sys.dm_exec_sessions 动态管理视图中。此视图返回会话 ID 和每个会话的开始时间。您可以通过在 SQL Server Management Studio 中运行以下任一查询或使用 osql 命令行实用工具查看此表:

SELECT * FROM [sys].[dm_exec_sessions]

SOAP 会话根据会话超时值确定是否过期。使用 CREATE ENDPOINTALTER ENDPOINT DDL 语句,设置服务器的默认或最大会话超时值。但是,客户端可以请求少于默认时间间隔的超时值。如果客户端请求的超时值大于服务器默认超时值,端点 DDL 语句指定的超时值将覆盖选定的客户端超时值。例如,假设使用下面的 CREATE ENDPOINT 建立会话支持的端点:

CREATE ENDPOINT
   ...
SESSIONS=ENABLED
   ...
SESSION_TIMEOUT = 60

之后,如果 SOAP 客户端请求的会话超时值(如 90)大于服务器最大会话超时值,则服务器最大会话超时值 60 将覆盖该值并用作实际会话超时间隔。如果端点 DDL 语句中未设置 SESSION_TIMEOUT,则服务器将不会超时会话(无限)。

默认情况下,HTTP 端点不会启用会话。若要在端点上启用会话,您必须在端点 DDL 中指定 SESSIONS=ENABLED。

会话仅在 SQL Server 2005 实例联机时才会持续。停止然后重新启动服务器时,将重置所有会话。此外,修改端点可以影响使用该端点的打开的或新的会话。有关详细信息,请参阅在使用 SOAP 会话时更改端点

ms179186.note(zh-cn,SQL.90).gif注意:
要联接现有 HTTP SOAP 会话的所有请求必须经过身份验证。有关详细信息,请参阅端点身份验证类型

可以启动或结束会话来修改它们的状态,但它们通常保留为“睡眠”状态(如会话已启动且在服务器上处于打开状态以供客户端使用时)或“休眠”状态(如会话已结束且当前在服务器上无法用于客户端时)。

ms179186.note(zh-cn,SQL.90).gif注意:
Web 服务定义语言 (WSDL) 请求无法参与 SOAP 会话。有关 WSDL 的详细信息,请参阅使用 WSDL

请参阅

参考

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

概念

启动 SOAP 会话

其他资源

使用 SOAP 会话

帮助和信息

获取 SQL Server 2005 帮助