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

Изменения: 17 июля 2006 г.

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

  • Если безымянный сеанс SOAP (безымянные сеансы SOAP существуют на протяжении только одного запроса) запрашивает уведомления о транзакции и включает инструкцию BEGIN TRANSACTION, но не инструкции COMMIT TRANSACTION или ROLLBACK TRANSACTION, то сервер выполняет откат транзакции, но не включает в ответ SOAP узел уведомления об откате транзакции.
  • Поддержка для собственных веб-служб с поддержкой XML доступна только на экземплярах SQL Server 2005, запущенных на операционной системе Windows, которая поддерживает HTTP API-интерфейс (Http.sys). Если производится попытка развернуть собственные веб-службы с поддержкой XML на экземпляре SQL Server, который не соответствует этому требованию к операционной системе и не поддерживает Http.sys, операции языка определения данных не будут выполняться, и собственного прослушивания не произойдет.
  • Если экземпляр SQL Server запущен в Windows XP, то попытка создать конечные точки может завершиться неуспешно. Например, если запущена служба IIS, то попытка выполнения инструкции CREATE ENDPOINT завершается неудачно, возвращая такую ошибку: «Произошла ошибка ('0x80070020') при попытке регистрации конечной точки 'endpointName'.»
    Эта ошибка указывает на конфликт процессов между экземпляром SQL Server и службами IIS, так как IIS в Windows XP прослушивает порт 80. Чтобы обойти эту проблему, нужно сделать следующее.
    • Остановите службу World Wide Web.
    • Выполните инструкцию CREATE ENDPOINT еще раз, используя номер порта, отличный от 80.
  • Можно настроить конечные точки на использование нескольких портов, но нельзя указать два порта одного и того же типа. Например, можно указать один чистый порт и один порт SSL, но нельзя указать два чистых порта или два порта SSL.
  • Табличные пользовательские функции не поддерживаются.
  • SOAP не поддерживает использование расширенных хранимых процедур в качестве веб-методов.
  • Нельзя отключать конечные точки, соединение с которыми осуществляется не по протоколу HTTP (состояние disabled могут иметь только конечные точки HTTP).
  • Хотя указание SOAP явно делает невозможным использование инструкций по обработке XML в запросах и откликах SOAP, в SQL Server 2005 данное ограничение не является строгим. Если инструкции по обработке (PI) присутствуют в заголовке запроса SOAP, сервер их не учитывает. Если инструкции PI встречаются в содержимом параметров XML, они сохраняются как часть XML-данных. Отклики SOAP не должны содержать инструкции по обработке, если только они не являются частью извлеченного параметра XML. Вследствие такого поведения клиентские приложения SOAP могут не принять экземпляр значения строки типа данных xml, которые содержит PI, или приложения могут вырезать PI, которые содержатся в типизированном XML, возвращаемом SQL Server. Если данный сценарий является важным, можно создать веб-службы, которые преобразуют любой из типов данных xml в типы NVarChar или VarBinary перед тем как служба отправляет их обратно клиентам SOAP.
  • Для улучшения взаимодействия с Visual Studio 2005 следует убедиться, что любые пространства имен, используемые в веб-методах конечной точки, отличаются от пространств имен, используемых со схемами типа данных xml, которые также используются на конечной точке.
  • Результаты WSDL, возвращаемые конечной точкой, могут включать XSD-схему, которая не является правильной, например если одно пространство имен импортируется более одного раза в любом из следующих сценариев.
    • Конечная точка содержит несколько параметров типа XML, которые ссылаются на разные коллекции схем, каждая из которых определяет одно и то же пространство имен.

    • Конечная точка содержит параметр типа XML, который ссылается на URI пространства имен, предопределенного для использования с собственными веб-службами с поддержкой XML в SQL Server 2005. Заранее определенные URI пространства имен, где может быть применен данный сценарий, включают перечисленные в следующей таблице.

      Префикс URI пространства имен

      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

См. также

Справочник

Настройка сервера на прослушивание запросов собственных веб-служб с поддержкой XML
Структура запроса и ответного сообщения SOAP
Образцы приложений, отправляющих запросы к собственным веб-службам с поддержкой XML

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

CREATE ENDPOINT (Transact-SQL)
Написание клиентских приложений

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

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

Журнал изменений

Версия Журнал

17 июля 2006 г.

Новое изменение
  • Добавлена запись, описывающая поведение безымянного сеанса SOAP.