原生 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 資料類型為 NVarChar 或 VarBinary 類型。
- 為了達到與 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)
撰寫用戶端應用程式
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 7 月 17 日 |
|