共用方式為


結束 SOAP 工作階段

未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

若要結束工作階段,要求中必須指定含有 sessionIdterminate 屬性集的 sqlSession 標頭。sessionId 必須識別伺服器上可供存取的已知工作階段,而 terminate 屬性值必須設為 true

如果沒有任何現有的工作階段具有此指定識別碼,即會傳回 SOAP 錯誤,且 sqlSession 標頭中會有 terminate 屬性。

如果執行要求時所使用的安全性內容或結束點與初始化工作階段時所使用的不同,即會傳回 SOAP 錯誤,而工作階段保持不變。

明確地結束工作階段之後,該工作階段便不再接受新的要求。工作階段會在最後一個批次完成後關閉。這不一定是實際要求工作階段終止的那一個批次。

範例

以下是結束 SOAP 工作階段的範例。若要結束工作階段,SOAP 用戶端要傳送如下要求,其中含有已知且有效的 sessionId 屬性值設定,以及指定為 trueterminate 屬性:

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- enlist in an existing session, and terminate it --><sqloptions:sqlSession terminate="true" sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

結束工作階段的要求可以空白,也可以含有訊息主體。如果含有主體,則會對 terminate 標頭進行處理和認可,不論方法執行時是否有任何錯誤。

接著伺服器會傳回如下的確認,指出工作階段已結束。

<SOAP-ENV:Header
  xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options">
    <!-- response to terminating an existing session --><sqloptions:sqlSession terminate="true" sessionId="AAAAADreaLE="/>
</SOAP-ENV:Header>

通常用戶端必須掃描伺服器所發出的確認回應,以確認終止作業已完成。如果用戶端在合理的時間內未收到確認,該用戶端必須重試終止要求。