Native XML Web Services: Deprecated in SQL Server 2008

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Native XML Web Services (SOAP/HTTP endpoints) is deprecated; Native XML Web Services will be removed from a future version of SQL Server. Plan to convert your existing SOAP/HTTP endpoints to use Windows Communications Foundation (WCF) or ASP.NET. Avoid using SOAP/HTTP endpoints in new development work.

Discovering Where You Use SOAP Endpoints

You can see where your applications use SOAP endpoints, as follows:

  • When you run the Upgrade Advisor

  • When you upgrade your SQL Server version to SQL Server 2008 (or later).

  • When you run an application in the SQL Server Profiler and filter the profiler output to show Deprecation: Warning events.

  • The SQL Server engine will issue warnings when a SOAP endpoint is created or modified.

  • The SQL Server error log will include warnings for deprecated SOAP endpoints that are enabled when SQL Server is started.

  • Application failure when a SOAP endpoint issued in a stored procedure uses a data type introduced after SQL Server 2005.

XML Native Web Services Support for Data Types Added After SQL Server 2005

This section discusses handling for data types that appear as stored procedure parameters (exposed as a web service) and SqlBatch parameters (ad hoc Transact-SQL query).

Feature

Handling

WSDL generation

During the WSDL generation process, stored procedures are evaluated for parameter data type and security permissions. If one of the stored procedure parameters is a SQL Server 2008 data type, the stored procedure will be commented out in the form of XML comment (<!-- text-->) in the final generated WSDL document.

Stored procedure parameter handling

As with SQL Server 2005 SOAP endpoints, each endpoint does no validation of the stored procedure mapped to the endpoint when the endpoint is created. As a result, stored procedures are only validated at runtime when the SOAP request is received. Leveraging this validation process, when a SOAP request is received, SQL Server will verify that the request is for a stored procedure and check the stored procedure parameter metadata to see if any of the parameters are unknown (for example, SQL Server 2008 data types). If any of the parameters are unknown, the server will return a SOAP fault to the client and perform no additional processing.

Result set handling

When a SELECT statement result set contains one or more columns of data types added in SQL Server 2008, the SOAP component will:

  • If no data has been written to the network, return a SOAP fault stating that the "xxx" is an unsupported data type.

  • If data has been written to the network, terminate the connection.

SqlBatch parameter handling

The special SqlBatch method supports declaring a parameter data type in the sqltypes namespace as well as the xsd namespace. sqltypes namespace does not support data types added in SQL Server 2008. SQL Server 2005’s xsd to sqltypes data type mapping remains in effect. xsd:dateTime will continue to map to dateTime instead of dateTimeOffset.

sys.soap_endpoints and sys.endpoint_webmethods Are Deprecated

The following catalog views are also deprecated:

See Also

Other Resources