Поделиться через


Собственные веб-службы с поддержкой XML: устарели в SQL Server 2008

В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.

В SQL Server 2008 собственные веб-службы с поддержкой XML (конечные точки SOAP/HTTP) являются устаревшими. Они будут удалены из будущих версий SQL Server. Запланируйте преобразование существующих конечных точек SOAP/HTTP с переходом на технологию WCF (Windows Communications Foundation) или ASP.NET. Избегайте использования конечных точек SOAP/HTTP в новых разработках.

Поиск мест в программах, где используются конечные точки SOAP

Места использования конечных точек SOAP в приложениях можно выяснить следующим образом.

  • При запуске помощника по обновлению.

  • При обновлении версии SQL Server до SQL Server 2008.

  • При запуске приложения в приложении SQL Server Profiler и фильтрации вывода приложения SQL Server Profiler, чтобы показывать в категории Deprecation предупреждающие события.

  • Ядро SQL Server будет выдавать предупреждения при создании или изменении конечной точки SOAP.

  • Журнал ошибок SQL Server будет содержать предупреждения для устаревших конечных точек SOAP, включаемых при запуске SQL Server.

  • Аварийное завершение работы приложения, когда конечная точка SOAP, созданная в хранимой процедуре, использует тип данных, введенный после версии SQL Server 2005.

Поддержка типов данных, добавленных после SQL Server 2005, собственными веб-службами с поддержкой XML

В этом разделе обсуждается обработка типов данных, добавленных начиная с SQL Server 2008 и выглядящих, как параметры хранимых процедур (к которым предоставляется доступ как к веб-службам), и параметров SqlBatch (нерегламентированный запрос Transact-SQL).

Функция

Обработка

Создание языка WSDL

В процессе создания языка WSDL хранимые процедуры оцениваются с точки зрения типов параметров и прав доступа. Если один из параметров хранимой процедуры представляет собой тип данных SQL Server 2008, в итоговом созданном документе языка WSDL хранимая процедура будет помещена в символы комментариев XML (<!-- text-->).

Работа с параметрами хранимой процедуры

Как и в случае с конечными точками SOAP SQL Server 2005, конечные точки не проводят проверки хранимых процедур, сопоставленных с этой конечной точкой, при ее создании. В результате хранимые процедуры проверяются только во время выполнения, при получении SOAP-запроса. Используя этот процесс проверки, при получении SOAP-запроса SQL Server убедится, что запрос относится к хранимой процедуре, и проверит метаданные параметров хранимой процедуры, чтобы узнать, не являются ли какие-либо из параметров неизвестными (например, типы данных SQL Server 2008). Если любой из параметров неизвестен, сервер вернет клиенту ошибку SOAP и кроме этого никакой обработки проводить не будет.

Обработка результирующего набора

Если результирующий набор инструкции SELECT содержит один или несколько столбцов типов данных, добавленных начиная с версии SQL Server 2008, компонент SOAP поступит следующим образом.

  • Если не было сетевых операций записи, будет возвращено сообщение об ошибке SOAP, указывающее, что «xxx» представляет собой неподдерживаемый тип данных.

  • Если проводилась сетевая операция записи, соединение разрывается.

Обработка параметров SqlBatch

Особый метод SqlBatch поддерживает объявление типа данных параметра в пространстве имен sqltypes, а также в пространстве имен xsd. Пространство имен sqltypes не поддерживает типы данных, добавленные начиная с версии SQL Server 2008. Сопоставление типов данных xsd версии SQL Server 2005 с типами данных sqltypes остается в силе. Тип xsd:dateTime будет по-прежнему сопоставляться с dateTime, а не с dateTimeOffset.

Методы sys.soap_endpoints и sys.endpoint_webmethods устарели

Кроме того, устарели также следующие функции: