Share via


原生 XML Web Service 中的指導方針和限制

更新: 2006 年 7 月 17 日

原生 XML Web Service 要求適用下列指導方針和限制:

  • 當 SOAP 未命名工作階段 (SOAP 未命名工作階段只存在於一個要求的持續時間內) 要求交易通知,且包含的是 BEGIN TRANSACTION 陳述式,而非 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 陳述式時,伺服器會回復交易,但是不會將回復交易通知節點包含在 SOAP 回應中。
  • 只有在支援 HTTP API (Http.sys) 的 Windows 作業系統版本上執行的 SQL Server 2005 執行個體才支援原生 XML Web Service。如果您嘗試在不符合此作業系統需求以及不支援 Http.sys 的 SQL Server 執行個體上部署原生 XML Web Service,「資料定義語言」作業將會失敗,而且不會發生原生接聽的動作。
  • 如果 SQL Server 執行個體是在 Windows XP 上執行,您可能會無法成功建立端點。例如,如果 Internet Information Services (IIS) 正在執行,嘗試執行 CREATE ENDPOINT 陳述式會失敗並傳回下列錯誤:「嘗試註冊端點 'endpointName' 時,發生錯誤 ('0x80070020')」。
    此錯誤指出 SQL Server 執行個體與 IIS 之間發生處理序衝突,因為 IIS 在 Window XP 下接聽 80 通訊埠。若要解決此問題,請執行以下步驟:
    • 停止 World Wide Web 服務
    • 使用通訊埠 80 以外的通訊埠編號來重新執行 CREATE ENDPOINT。
  • 您可以設定端點以使用多個通訊埠,但您不能指定兩個相同類型的通訊埠。例如,您可以指定一個明確的通訊埠以及一個 SSL 通訊埠,而不是兩個明確的通訊埠或是兩個 SSL 通訊埠。
  • 不支援資料表值使用者自訂函數。
  • SOAP 不支援將擴充預存程序公開成 Web 方法。
  • 您無法停用非 HTTP 端點 (端點的狀態可以設定為僅針對 HTTP 端點停用)。
  • 雖然 SOAP 規格明定不允許 SOAP 要求和回應中的 XML 處理指示,但是 SQL Server 2005 並不會強制執行此限制。如果處理指示 (PI) 存在於 SOAP 要求的封套中,伺服器就會忽略它們。如果 PI 出現在 XML 參數的內容中,會將它們保存為 XML 資料的一部分。SOAP 回應不應包含處理指示,除非它們屬於已擷取 XML 參數的一部分。此行為的其中一個含義為 SOAP 用戶端應用程式可能不會接受包含 PI 的 xml 資料類型資料列執行個體值,或是應用程式有可能去除 SQL Server 所傳回的 XML 類型中所包含的 PI。如果這是重要的狀況,您可以建立 Web 服務,以便在服務將 PI 傳送回 SOAP 用戶端前先轉換任何 xml 資料類型為 NVarCharVarBinary 類型。
  • 為了達到與 Visual Studio 2005 交互使用的最大可能性,請確保任何用於端點 Web 方法中的命名空間,和任何也用於端點的 xml 資料類型結構描述搭配使用的命名空間不同。
  • 端點所傳回的 WSDL 結果可能包含無效的 XSD 結構描述,例如在下列任一個狀況下匯入一次以上的單一命名空間:
    • 端點包含 XML 類型的多個參數,這些參數參考不同的結構描述集合,而每一個集合都定義相同的命名空間。

    • 端點所包含的 XML 類型的參數參考預先定義的命名空間 URI,該 URI 是供 SQL Server 2005 中的原生 XML Web 服務使用。下表列出此狀況下可能適用的預先定義之命名空間 URI。

      前置詞 命名空間 URI

      sql

      https://schemas.microsoft.com/sqlserver/2004/SOAP

      sqloptions

      https://schemas.microsoft.com/sqlserver/2004/SOAP/Options

      sqlsoaptypes

      https://schemas.microsoft.com/sqlserver/2004/SOAP/types

      sqlmessage

      https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlMessage

      sqlparameter

      https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlParameter

      sqlresultstream

      https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlResultStream

      sqlrowcount

      https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlRowCount

      sqltransaction

      https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlTransaction

      sqltypes

      https://schemas.microsoft.com/sqlserver/2004/sqltypes

      xml

      http://www.w3.org/XML/1998/namespace

      xsd

      http://www.w3.org/2001/XMLSchema

      xsi

      http://www.w3.org/2001/XMLSchema-instance

請參閱

參考

設定伺服器接聽原生 XML Web Service 的要求
SOAP 要求與回應訊息結構
傳送原生 XML Web Service 要求的範例應用程式

其他資源

CREATE ENDPOINT (Transact-SQL)
撰寫用戶端應用程式

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 7 月 17 日

新增內容:
  • 新增描述 SOAP 未命名工作階段之行為的項目。