SOAP 工作階段如何支援工作
未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。
所有 SOAP 工作階段都會經由成對的要求/回應訊息而發生,這些成對的要求/回應訊息是在伺服器和包含選擇性 sqlSession 標頭的用戶端之間產生,可涵蓋與 SOAP 工作階段相關的所有資訊。sqlSession 會區分大小寫,且為 sqloptions 命名空間的一部份。
當伺服器將 SOAP 工作階段初始化之後,工作階段會儲存在 sys.dm_exec_sessions 動態管理檢視中。此檢視會針對每個工作階段傳回工作階段識別碼和開始時間。您可以在 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 執行個體在線上時才會持續工作階段。停止伺服器後再重新啟動,會重設所有的工作階段。此外,修改結束點可能對使用該結束點的已開啟或新工作階段造成影響。如需詳細資訊,請參閱<使用 SOAP 工作階段時改變端點>。
[!附註]
聯結現有 HTTP SOAP 工作階段的所有要求都必須經過驗證。如需詳細資訊,請參閱<端點驗證類型>。
您可以啟動或結束工作階段以修改其狀態,但通常會維持在「睡眠」狀態 (例如,已啟動工作階段並已在伺服器開啟工作階段供用戶端使用),或「休眠」狀態 (例如,已結束工作階段且伺服器目前無法使用工作階段供用戶端使用)。
[!附註]
Web 服務定義語言 (WSDL) 要求無法參與 SOAP 工作階段。如需有關 WSDL 的詳細資訊,請參閱<使用 WSDL>。