Establecer el servidor para que escuche solicitudes de servicios Web XML nativos
La configuración de una instancia de SQL Server 2005 como un servicio Web que escucha de forma nativa las solicitudes HTTP SOAP requiere la creación de un extremo HTTP (espacio de nombres URL) y la definición de sus propiedades y de los métodos que expone el extremo.
Los extremos HTTP que se crean para su usarse con SQL Server 2005 pueden escuchar y recibir solicitudes en el mismo puerto TCP (puerto 80) que utilizan los Servicios de Internet Information Server (IIS) de Microsoft para el servicio de World Wide Web. Esto se debe a que cada URL, independientemente de si se utiliza con SQL Server o con IIS, se registra con el sistema operativo para usarse en el proceso de escucha HTTP del sistema (Http.sys).
Por ejemplo, supongamos que ha creado un extremo con la dirección URL: http://MyServer/MySql endpoint
. Este extremo se registra con Http.sys. Cuando se envía una solicitud SOAP a este extremo, en primer lugar se dirige al servidor identificado en la dirección URL (MyServer
). Cuando recibe la solicitud, la capa Http.sys del servidor compara el resto de la dirección URL con el extremo registrado y reenvía la solicitud directamente a la instancia de SQL Server, y omite IIS. Además, si utiliza la consola Administrador de servicios Internet (Inetmgr.exe), puede crear un directorio virtual equivalente a un extremo HTTP para IIS con una dirección URL diferente, como la siguiente: http://MyServer/MyVDir
. http://MyServer/MyVDir
.
Crear y administrar extremos
Para crear y administrar extremos, utilice las siguientes instrucciones Transact-SQL:
- CREATE ENDPOINT
Se utiliza para crear extremos, para definir métodos para los que las aplicaciones cliente pueden enviar solicitudes HTTP SOAP al extremo y para establecer la autenticación y especificar puertos. - ALTER ENDPOINT
Se utiliza para agregar, quitar o modificar métodos o para cambiar opciones de los extremos. - DROP ENDPOINT
Se utiliza para eliminar extremos no deseados u obsoletos.
Permisos y autenticación de extremos
Para crear, modificar o quitar extremos HTTP, debe disponer de permisos. El acceso a los extremos requiere la autenticación. Estos requisitos se describen en los siguientes temas:
- GRANT (permisos de extremo de Transact-SQL)
- Tipos de autenticación de extremos
- Configurar el controlador HTTP en modo de núcleo (Http.sys)
Programación en Web
Para exponer procedimientos almacenados o funciones definidas por el usuario, vea el siguiente tema:
Entorno de ejecución predeterminado
De manera predeterminada, las solicitudes HTTP SOAP a servicios Web XML nativos en SQL Server 2005 se ejecutan con los parámetros indicados en la tabla siguiente.
- SET ANSI_NULL_DFLT_ON ON
Si la opción predeterminada ANSI NULL de la base de datos es FALSE, se anula la capacidad predeterminada de aceptar valores NULL en las nueva columnas. Para obtener más información, vea SET ANSI_NULL_DFLT_ON (Transact-SQL).
- SET QUOTED_IDENTIFIER ON
los identificadores pueden delimitarse con comillas dobles y los literales deben delimitarse con comillas simples. Para obtener más información, vea SET QUOTED_IDENTIFIER (Transact-SQL).
- SET NUMERIC_ROUNDABORT OFF
Las pérdidas de precisión no generan mensajes de error y el resultado se redondea con la precisión de la columna o variable que lo almacena. Para obtener más información, vea SET NUMERIC_ROUNDABORT (Transact-SQL).
- SET ARITHABORT ON
Si se produce un desbordamiento o un error de división por cero durante la ejecución de una consulta, finaliza la consulta o el lote. Para obtener más información, vea SET ARITHABORT (Transact-SQL).
- SET ANSI_WARNINGS ON
Si aparecen valores NULL en funciones de agregado, como SUM o AVG, se genera un mensaje de advertencia. Para obtener más información, vea SET ANSI_WARNINGS (Transact-SQL).
- SET ANSI_NULLS ON
Las comparaciones con un valor NULL que se realizan con operadores Es igual a (=) y No es igual a (<>) se evalúan como FALSE. Para obtener más información, vea SET ANSI_NULLS (Transact-SQL).
- SET CONCAT_NULL_YIELDS_NULL ON
La concatenación de un valor NULL con una cadena genera un resultado NULL. Para obtener más información, vea SET CONCAT_NULL_YIELDS_NULL (Transact-SQL).
- SET ANSI_PADDING ON
En las columnas que almacenan valores más cortos que el tamaño predeterminado de la columna, dichos valores se rellenan. En columnas con espacios en blanco en datos char, varchar, binary y varbinary, los ceros o los espacios en blanco no se recortan. Para obtener más información, vea SET ANSI_PADDING (Transact-SQL).
- SET CURSOR_CLOSE_ON_COMMIT ON
Cuando se confirma o se revierte una transacción, los cursores abiertos se cierran. Para obtener más información, vea SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL).
- SET IMPLICIT_TRANSACTIONS OFF
De manera predeterminada, las transacciones en sesiones HTTP SOAP actúan en modo de confirmación automática, de forma que las instrucciones individuales se confirman si finalizan correctamente. Para obtener más información, vea SET IMPLICIT_TRANSACTIONS (Transact-SQL).
Consideraciones acerca de conmutación por error de SQL Server 2005 para servicios HTTP SOAP
Al instalar SQL Server 2005, es recomendable usar una cuenta de dominio como cuenta del servicio SQL y asegurarse de que la cuenta no tiene derechos administrativos completos en el equipo local. Esto tiene ciertas implicaciones al configurar un servidor SQL como servidor virtual en un clúster de Windows. Hay que tener en cuenta ciertas consideraciones al configurar servicios nativos HTTP-SOAP de SQL.
SQL Server 2005 aprovecha el controlador de HTTP de . Este puerto de escucha HTTP está diseñado para dirigir las solicitudes a cualquier aplicación suscrita a él en la plataforma Windows, incluidos SQL Server y los Servicios de Internet Information Server. Para suscribirse a este servicio, las aplicaciones tienen que llamar a las API de HTTP para reservar la dirección URL raíz específica de la aplicación, denominada también espacio de nombres. Esta reserva indica al controlador HTTP que dirija todas las solicitudes siguientes desde esa dirección URL a la aplicación suscrita. La llamada a estas API de HTTP se debe realizar en el contexto de una cuenta con derechos de administrador local de Windows. En SQL Server 2005, estas llamadas se realizan mediante un procedimiento almacenado especial llamado sp_reserve_http_namespaces (para obtener más información, vea Reservar un espacio de nombres HTTP). Este procedimiento almacenado crea un enlace entre la dirección URL raíz y la cuenta del servicio SQL para el enrutamiento del controlador de HTTP de Windows. Si la cuenta del servicio SQL no dispone de derechos de administrador en el equipo local, hay que llamar al procedimiento almacenado mediante una cuenta de administrador local de Windows. Una vez que se ha registrado este espacio de nombres, los extremos SQL SOAP se pueden crear bajo la dirección URL para la redirección de las solicitudes HTTP subsiguientes. En una configuración de clústeres, esta reserva de espacio de nombres HTTP debe ser establecida por un administrador local de Windows en cada uno de los nodos. Así se garantiza que el servicio HTTP siga dirigiendo las solicitudes al servidor SQL si se produce una conmutación por error en cualquiera de los nodos.
Otro aspecto que se debe tener en cuenta en la conmutación por error de clústeres con SQL Server 2005 y HTTP-SOAP es el uso de certificados de cifrado en las solicitudes a través del canal SSL. Para obtener más información, vea Configurar certificados para su uso con SSL. En un entorno de clústeres, la configuración de certificados también se debe llevar a cabo en cada uno de los nodos. El sujeto de estos certificados se debe establecer en el nombre completo del servidor virtual. Para garantizar que se configura la autenticación Kerberos sobre HTTP, vea Registrar nombres principales de servicio de Kerberos mediante Http.sys, que también se aplica a los clústeres.
Vea también
Referencia
Estructura de los mensajes de respuesta y solicitud SOAP
Estructura de los mensajes de respuesta y solicitud SOAP
Directrices y limitaciones de los servicios Web XML nativos
Conceptos
Otros recursos
Escribir aplicaciones cliente
Usar servicios Web XML nativos en SQL Server 2005