初始化 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")。如果用戶端在要求中指定的逾時間隔大於伺服器端的最大逾時值,則對用戶端的回應中會指定為此伺服器端的值。