本机 XML Web 服务的指导原则和限制
更新日期: 2006 年 7 月 17 日
下列指导原则和限制适用于本机 XML Web 服务请求:
- 当 SOAP 未命名会话(SOAP 未命名会话只在一个请求期间内存在)请求事务通知,并且包括 BEGIN TRANSACTION 语句但不包括 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 语句时,服务器回滚该事务,但是不将回滚事务通知节点包括在 SOAP 响应中。
- 只有在支持 HTTP API (Http.sys) 的 Windows 操作系统版本上运行的 SQL Server 2005 实例才支持本机 XML Web 服务。如果试图在不满足此操作系统要求且不支持 Http.sys 的 SQL Server 实例上部署本机 XML Web 服务,数据定义语言操作将失败,并且不会发生本机侦听。
- 如果 SQL Server 实例在 Windows XP 上运行,则可能无法成功创建端点。例如,如果 Internet 信息服务 (IIS) 正在运行,则尝试运行 CREATE ENDPOINT 语句将失败,并返回以下错误:“试图注册端点 'endpointName' 时发生错误 ('0x80070020')。”
此错误指示由于 IIS 侦听 Windows XP 下的端口 80,SQL Server 实例和 IIS 之间发生了进程冲突。若要解决此问题,请执行以下操作:- 停止万维网服务
- 通过使用除端口 80 以外的其他端口重新运行 CREATE ENDPOINT。
- 可以将端点配置为使用多个端口,但不能指定两个相同类型的端口。例如,可以指定一个清除端口和一个 SSL 端口,但不能指定两个清除端口或两个 SSL 端口。
- 不支持用户定义的表值函数。
- SOAP 不支持将扩展存储过程公开为 Web 方法。
- 不能禁用非 HTTP 端点(只能将 HTTP 端点的状态设置为禁用)。
- 尽管 SOAP 规范明确禁止在 SOAP 请求和响应中使用 XML 处理指令,但 SQL Server 2005 并没有强制此限制。如果在封装 SOAP 请求时存在处理指令 (PI),服务器将忽略这些指令。如果 PI 出现在 XML 参数的内容中,它们将始终是 XML 数据的一部分。SOAP 响应不应包含处理指令,除非这些处理指令是检索的 XML 参数的一部分。此行为的隐含意义是,SOAP 客户端应用程序可能不接受包含 PI 的 xml 数据类型行实例值,或者应用程序可能会将 SQL Server 返回的类型化 XML 中包含的 PI 条带化。如果这是一个重要的方案,您可以生成 Web 服务,在 Web 服务将任何 xml 数据类型发送回 SOAP 客户端之前将它们转换为 NVarChar 或 VarBinary。
- 为了在 Visual Studio 2005 中获得更好的互操作性,请确保端点 Web 方法中使用的任何命名空间都不同于端点上使用的 xml 数据类型架构所用的命名空间。
- 端点返回的 WSDL 结果可能包含无效的 XSD 架构,例如,在下列任一方案中,多次输出单个命名空间时可能会出现这种情况:
端点包含多个 XML 类型的参数,这些参数引用不同的架构集合,而每个集合定义相同的命名空间。
端点包含一个 XML 类型的参数,该参数引用一个命名空间 URI,该 URI 在 SQL Server 2005 中被预定义为与本机 XML Web 服务一起使用。此方案可能适用的预定义命名空间 URI 包含下表中列出的 URI。
Prefix 命名空间 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 服务请求
SOAP 请求和响应消息结构
用于发送本机 XML Web 服务请求的示例应用程序
其他资源
CREATE ENDPOINT (Transact-SQL)
编写客户端应用程序
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 7 月 17 日 |
|