本机 XML Web 服务:不推荐在 SQL Server 2008 中使用

后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

在 SQL Server 2008 中,不推荐使用本机 XML Web 服务(SOAP/HTTP 端点);在 SQL Server 的将来版本中会删除本机 XML Web 服务。请计划将现有 SOAP/HTTP 端点转换为使用 Windows Communications Foundation (WCF) 或 ASP.NET。请避免在新的开发工作中使用 SOAP/HTTP 端点。

查找使用 SOAP 端点的场合

您可以看到您的应用程序使用 SOAP 端点的场合,如下所示:

  • 运行升级顾问

  • 将 SQL Server 版本升级为 SQL Server 2008。

  • 在 SQL Server 事件探查器中运行应用程序,并筛选事件探查器输出以显示“不推荐使用:警告事件”。

  • 当创建或修改 SOAP 端点时,SQL Server 引擎将发出警告。

  • SQL Server 错误日志将包含在启动 SQL Server 时启用的不推荐使用的 SOAP 端点的警告。

  • 当在存储过程中发出的 SOAP 端点使用 SQL Server 2005 之后引入的数据类型时,应用程序失败。

对在 SQL Server 2005 之后添加的数据类型的 XML 本机 Web 服务支持

本部分讨论了从 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 2005xsdsqltypes 数据类型的映射保持有效。xsd:dateTime 将继续映射到 dateTime 而不是 dateTimeOffset

不推荐使用 sys.soap_endpoints 和 sys.endpoint_webmethods

同时,不推荐使用以下目录视图:

请参阅

其他资源