Directrices y limitaciones de los servicios Web XML nativos

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Las directrices y limitaciones siguientes se aplican a las solicitudes de los servicios Web XML nativos:

  • Si una sesión SOAP sin nombre (las sesiones SOAP sin nombre sólo existen durante el transcurso de una sola solicitud) solicita la notificación de transacciones e incluye la instrucción BEGIN TRANSACTION pero no incluye las instrucciones COMMIT TRANSACTION o ROLLBACK TRANSACTION, el servidor revierte la transacción pero no incluye el nodo de notificación de reversión de transacciones en la respuesta de SOAP.

  • La compatibilidad con los servicios Web XML nativos sólo está disponible en las instancias de SQL Server que se ejecutan en versiones del sistema operativo Windows compatibles con la API HTTP (Http.sys). Si intenta implementar los servicios Web XML nativos en una instancia de SQL Server que no cumple este requisito del sistema operativo y no admite Http.sys, las operaciones de lenguaje de definición de datos (DDL) provocarán un error y no se producirá ninguna escucha nativa.

  • Si la instancia de SQL Server se ejecuta en Windows XP Professional, es posible que no pueda crear extremos correctamente. Por ejemplo, si se está ejecutando Internet Information Services (IIS) y se intenta ejecutar una instrucción CREATE ENDPOINT, se producirá un error y aparecerá el mensaje "Error ('0x80070020') al intentar registrar el extremo 'nombreDeExtremo'".

    Este error indica que se produce un conflicto de procesos entre la instancia de SQL Server e IIS porque IIS escucha el puerto 80 en Windows XP. Para solucionar este problema, haga lo siguiente:

    • Detenga el servicio World Wide Web

    • Vuelva a ejecutar CREATE ENDPOINT con un puerto que no sea el 80.

  • Puede configurar extremos para que utilicen varios puertos, pero no se pueden especificar dos puertos del mismo tipo. Por ejemplo, puede especificar un puerto no utilizado y otro SSL, pero no dos no utilizados o dos SSL.

  • No se admiten las funciones con valores de tabla definidas por el usuario.

  • SOAP no permite exponer procedimientos almacenados extendidos como métodos Web.

  • No se pueden deshabilitar extremos no HTTP (el estado para un extremo sólo puede establecerse en deshabilitado para extremos HTTP).

  • Aunque la especificación SOAP impide explícitamente las instrucciones de procesamiento XML en las solicitudes y respuestas SOAP, SQL Server no aplica esta restricción. Si hay instrucciones de procesamiento (PI) presentes en el sobre de una solicitud SOAP, el servidor las omitirá. Si aparecen PI en el contenido de un parámetro XML, se almacenarán como parte de los datos XML. Las respuestas SOAP no deben contener instrucciones de procesamiento, a menos que formen parte de un parámetro XML recuperado. Este comportamiento implica la posibilidad de que las aplicaciones SOAP cliente no acepten un valor de instancia de fila de tipo de datos xml que contenga PI, o de que las aplicaciones quiten las PI incluidas en el XML con tipo devuelto por SQL Server. Si se trata de un escenario importante, puede crear servicios Web que conviertan los tipos de datos xml en tipos NVarChar o VarBinary antes de que el servicio los devuelva a los clientes SOAP.

  • Para una mayor interoperabilidad con Visual Studio 2005, asegúrese de que los espacios de nombres utilizados en los métodos Web de extremo son distintos de los utilizados con los esquemas de tipos de datos xml que también se usan en el extremo.

  • Los resultados WSDL devueltos por un extremo pueden incluir un esquema XSD no válido; por ejemplo cuando se importa un solo espacio de nombres más de una vez en alguno de los escenarios siguientes:

    • El extremo incluye varios parámetros de tipo XML que hacen referencia a distintas colecciones de esquemas, cada una de las cuales define el mismo espacio de nombres.

    • El extremo incluye un parámetro de tipo XML que hace referencia a un URI de espacio de nombres predefinido para su uso con los servicios web XML nativos en SQL Server. Los URI de espacio de nombres predefinidos en los que se puede aplicar este escenario incluyen los indicados en la tabla siguiente.

      Prefijo

      URI de espacio de nombres

      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