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 ENDPOINT 或 ALTER 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 会话时更改端点。
注意: |
---|
要联接现有 HTTP SOAP 会话的所有请求必须经过身份验证。有关详细信息,请参阅端点身份验证类型。 |
可以启动或结束会话来修改它们的状态,但它们通常保留为“睡眠”状态(如会话已启动且在服务器上处于打开状态以供客户端使用时)或“休眠”状态(如会话已结束且当前在服务器上无法用于客户端时)。
注意: |
---|
Web 服务定义语言 (WSDL) 请求无法参与 SOAP 会话。有关 WSDL 的详细信息,请参阅使用 WSDL。 |
请参阅
参考
用于发送本机 XML Web 服务请求的示例应用程序
在客户端应用程序中添加 SOAP 标头