Настройка сервера на прослушивание запросов собственных веб-служб с поддержкой XML

Для настройки экземпляра SQL Server 2005 в качестве веб-службы, прослушивающей запросы HTTP SOAP, необходимо создание конечной точки HTTP (URL-адрес пространства имен), определение ее свойств и предоставляемых ею методов.

Конечные точки HTTP, созданные для работы с SQL Server 2005, могут прослушивать и принимать запросы с того же самого TCP-порта (порт 80), который используется службами Microsoft IIS для служб WWW. Это возможно из-за того, что каждый URL-адрес, независимо от того, используется ли он вместе с SQL Server или IIS, зарегистрирован операционной системой для использования системным процессом прослушивания HTTP (Http.sys).

Например, предположим, что создана конечная точка со следующим URL-адрес: http://MyServer/MySql endpoint. Эта конечная точка затем регистрируется процессом Http.sys. При отправке запроса SOAP на эту конечную точку запрос сначала посылается на сервер, определенный в URL-адресе (MyServer). До получения запроса уровень Http.sys сервера сравнивает оставшуюся часть URL-адреса с зарегистрированной конечной точкой и отправляет запрос прямо на экземпляр SQL Server, минуя службы IIS. Кроме того, при помощи консоли Internet Services Manager (Inetmgr.exe) можно создать виртуальные каталоги, эквивалентные конечной точке HTTP для служб IIS с другим URL-адресом, например: http://MyServer/MyVDir.

Создание и настройка конечных точек

Чтобы создать и настроить конечные точки, используйте следующие инструкции языка Transact-SQL:

  • CREATE ENDPOINT
    Используйте эту инструкцию для создания конечных точек и определения методов, при помощи которых клиентские приложения отправляют запросы HTTP SOAP на конечную точку, и для установки проверки подлинности и определения портов.
  • ALTER ENDPOINT
    Используйте эту инструкцию для добавления, удаления или изменения методов или изменения параметров конечных точек.
  • DROP ENDPOINT
    Используйте эту инструкцию для удаления нежелательных или устаревших конечных точек.

Проверка подлинности и разрешения конечных точек

Для создания, изменения или удаления конечных точек HTTP нужно иметь разрешения. Для доступа к конечным точкам необходима проверка подлинности. Эти требования описаны в следующих разделах:

Поддержка веб-программирования

Сведения о предоставлении хранимых процедур или пользовательских функций см. в следующем подразделе:

Среда выполнения по умолчанию

По умолчанию запросы HTTP SOAP собственных веб-служб с поддержкой XML в SQL Server 2005 выполняются при настройках, представленных в следующей таблице.

  • SET ANSI_NULL_DFLT_ON ON
    Если параметр по умолчанию ANSI NULL для базы данных имеет значение FALSE, оно замещается, и новые столбцы смогут принимать значение NULL. Дополнительные сведения см. в разделе SET ANSI_NULL_DFLT_ON (Transact-SQL).
  • SET QUOTED_IDENTIFIER ON
    Идентификаторы можно отделять двойными кавычками, а литералы должны быть отделены одинарными кавычками. Дополнительные сведения см. в разделе SET QUOTED_IDENTIFIER (Transact-SQL).
  • SET NUMERIC_ROUNDABORT OFF
    Потери точности не приводят к формированию сообщений об ошибках, а результат округляется с точностью столбца или переменной, в которых сохраняется результат. Дополнительные сведения см. в разделе SET NUMERIC_ROUNDABORT (Transact-SQL).
  • SET ARITHABORT ON
    Завершает запрос или пакет, если во время его выполнения возникла ошибка переполнения или деления на ноль. Дополнительные сведения см. в разделе SET ARITHABORT (Transact-SQL).
  • SET ANSI_WARNINGS ON
    Если в статистических функциях, таких как SUM или AVG, появятся значения NULL, будет сформировано предупреждающее сообщение. Дополнительные сведения см. в разделе SET ANSI_WARNINGS (Transact-SQL).
  • SET ANSI_NULLS ON
    При сравнении значений NULL операторами равенства (=) или неравенства (<>) в результате выдается значение FALSE. Дополнительные сведения см. в разделе SET ANSI_NULLS (Transact-SQL).
  • SET CONCAT_NULL_YIELDS_NULL ON
    Возвращает NULL, если со строкой сцепляется значение NULL. Дополнительные сведения см. в разделе SET CONCAT_NULL_YIELDS_NULL (Transact-SQL).
  • SET ANSI_PADDING ON
    В столбцах, значения которых короче заданного для столбца размера, происходит дополнение значений до размера столбца. В столбцах, где есть пробелы в конце данных типа char, varchar, binary или varbinary, эти нули или пробелы не удаляются. Дополнительные сведения см. в разделе SET ANSI_PADDING (Transact-SQL).
  • SET CURSOR_CLOSE_ON_COMMIT ON
    При фиксации или откате транзакции все открытые курсоры закрываются. Дополнительные сведения см. в разделе SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL).
  • SET IMPLICIT_TRANSACTIONS OFF
    По умолчанию транзакции в HTTP SOAP-сеансах работают в режиме автоматической фиксации, когда все индивидуальные инструкции фиксируются в случае успешного выполнения. Дополнительные сведения см. в разделе SET IMPLICIT_TRANSACTIONS (Transact-SQL).

Соображения об использовании перехода между кластерами SQL Server 2005 со службами HTTP SOAP

При установке SQL Server 2005 рекомендуется использовать учетную запись домена в качестве учетной записи службы SQL и убедиться, что эта учетная запись не обладает всеми правами администрирования на локальном компьютере. Существует ряд причин для этого при настройке SQL Server в качестве виртуального сервера на кластере Windows. Это обусловлено настройками собственных служб SQL HTTP-SOAP.

SQL Server 2005 использует драйвер HTTP, поставляемый вместе с . Эта служба прослушивания HTTP создана, чтобы перенаправлять запросы подписанным на эту службу приложениям на платформе Windows, в том числе SQL Server и службам IIS. Чтобы подписаться на эту службу, приложению необходимо сделать вызов HTTP API, чтобы зарезервировать особый для данного приложения корневой URL-адрес, также называемый пространством имен. Это резервирование сообщает драйверу HTTP о необходимости перенаправлять все последующие запросы с такого URL-адреса на подписанное приложение. Вызов HTTP API должен осуществляться в контексте учетной записи, имеющей локальные права администратора Windows. В SQL Server 2005 эти вызовы осуществляются с помощью особой хранимой процедуры sp_reserve_http_namespaces (дополнительные сведения см. в разделе Резервирование пространства имен HTTP). Эта хранимая процедура создает связывание между корневым URL-адресом и учетной записью службы SQL для маршрутизации драйвера HTTP Windows. Если учетная запись службы SQL не имеет права администратора на локальном компьютере, то хранимая процедура должна вызываться с использованием учетной записи локального администратора Windows. После того как зарегистрировано данное пространство имен, можно создать конечные точки SOAP SQL для URL-адреса, чтобы перенаправлять все последующие HTTP-запросы. В настройках кластера резервирование пространства имен HTTP должно быть установлено локальным администратором Windows на каждом из узлов. Это гарантирует, что служба HTTP будет и далее перенаправлять запросы на SQL Server, если на каком-либо узле произойдет сбой.

Другое соображение о переходе между кластерами SQL Server 2005 и запросах HTTP-SOAP касается использования сертификатов на шифрование для запросов через SSL-канал. Дополнительные сведения см. в разделе Настройка сертификата для использования протоколом SSL. В среде кластера необходимо также делать настройку сертификатов на каждом узле. Предмет этих сертификатов должен быть задан как полное имя виртуального сервера. Чтобы убедиться, что настроена проверка подлинности Kerberos через HTTP, см. раздел Регистрация имен участников службы Kerberos в файле Http.sys, который также применим к кластерам.

См. также

Справочник

Структура запроса и ответного сообщения SOAP
Структура запроса и ответного сообщения SOAP
Правила и ограничения собственных веб-служб с поддержкой XML

Основные понятия

Использование языка WSDL

Другие ресурсы

Написание клиентских приложений
Использование собственных веб-служб с поддержкой XML в SQL Server 2005

Справка и поддержка

Получение помощи по SQL Server 2005