原生 XML Web 服務:在 SQL Server 2008 中已被取代

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

在 SQL Server 2008 中,原生 XML Web 服務 (SOAP/HTTP 端點) 已被取代;原生 XML Web 服務將會從後續版本的 SQL Server 中移除。計畫將您現有的 SOAP/HTTP 端點轉換為使用 Windows Communications Foundation (WCF) 或 ASP.NET。請避免在新的開發工作中使用 SOAP/HTTP 端點。

探索使用 SOAP 端點的地方

您可以看到應用程式使用 SOAP 端點的地方,如下所示:

  • 執行 Upgrade Advisor 的時機

  • 將 SQL Server 版本升級到 SQL Server 2008 時。

  • 當您在 SQL Server Profiler 中執行應用程式,並篩選 Profiler 輸出來顯示 Deprecation: Warning 事件時。

  • 建立或修改 SOAP 端點時,SQL Server 引擎會發出警告。

  • SQL Server 錯誤記錄檔將會包含啟動 SQL Server 時啟用之已被取代 SOAP 端點的警告。

  • 當在預存程序中發出的 SOAP 端點使用 SQL Server 2005 之後推出的資料類型時,應用程式會失敗。

XML 原生 Web 服務對於 SQL Server 2005 之後加入之料類型的支援

本節討論從 SQL Server 2008 開始加入,而且顯示為預存程序參數 (公開為 Web 服務) 和 SqlBatch 參數 (特定 Transact-SQL 查詢) 之資料類型的處理方法。

功能

處理方法

產生 WSDL

在 WSDL 產生過程中,系統會針對參數資料類型和安全性權限評估預存程序。如果其中一個預存程序參數是 SQL Server 2008 資料類型,預存程序將會在最終產生的 WSDL 文件中,以 XML 註解的形式 (<!-- text-->) 標記為註解。

預存程序參數處理方法

建立端點時,與 SQL Server 2005 SOAP 端點一樣,每個端點都不會驗證對應到端點的預存程序。因此,接收 SOAP 要求時,只會在執行階段驗證預存程序。接收 SOAP 要求時,SQL Server 將會運用此驗證程序確認該要求用於預存程序,並檢查預存程序參數中繼資料,查看是否有任何未知的參數 (例如,SQL Server 2008 資料類型)。如果有任何未知的參數,伺服器會將 SOAP 錯誤傳回用戶端,而且不執行其他任何處理。

結果集處理方法

當 SELECT 陳述式結果集包含一或多個從 SQL Server 2008 開始加入之資料類型的資料行,SOAP 元件將:

  • 如果沒有將任何資料寫入網路,傳回 SOAP 錯誤,說明 "xxx" 是不支援的資料類型。

  • 如果已將資料寫入網路,結束連接。

SqlBatch 參數處理方法

特殊的 SqlBatch 方法支援在 sqltypes 命名空間和 xsd 命名空間中宣告參數資料類型。sqltypes 命名空間不支援從 SQL Server 2008 開始加入的資料類型。SQL Server 2005 的 xsdsqltypes 資料類型對應仍然有效。xsd:dateTime 將會繼續對應到 dateTime 而非 dateTimeOffset

sys.soap_endpoints 和 sys.endpoint_webmethods 已被取代

下列類別目錄檢視也已被取代:

請參閱

其他資源