Предоставить базу данных SQL Server в качестве веб-службы для получения данных - PullRequest
16 голосов
/ 17 января 2010

Существует ли какой-либо инструмент .NET для представления данных моих таблиц в Microsoft SQL Server в качестве веб-служб? Должен ли я написать код? Есть ли образцы? Что вы посоветуете, как выставить данные?

Ответы [ 4 ]

19 голосов
/ 17 января 2010

Начиная с SQL Server 2005, вы можете предоставлять собственные веб-службы XML непосредственно из базы данных.

SQL Server можно настроить для собственного прослушивания запросов HTTP SOAP через конечную точку HTTP. Как правило, вы хотите представить хранимые процедуры или пользовательские функции в качестве конечных точек HTTP, поэтому требуется небольшое кодирование. Но из примеров должно быть очень легко следовать.

Обычно вы начинаете с создания хранимой процедуры следующим образом:

CREATE PROCEDURE [dbo].[getContact]
   @ID [int]       
AS
BEGIN
   SELECT * FROM [AdventureWorks].[Person].[Contact] WHERE ContactID = @ID   
END;

И тогда вы бы определили свою конечную точку HTTP следующим образом:

CREATE ENDPOINT SQLEP_GetContact
    STATE = STARTED
AS HTTP
(
    PATH = '/Contact',
    AUTHENTICATION = (INTEGRATED),
    PORTS = (CLEAR),
    SITE = 'localhost'
)
FOR SOAP
(
    WEBMETHOD 'ContactInfo' (NAME='AdventureWorks.dbo.getContact'),
    BATCHES = DISABLED,
    WSDL = DEFAULT,
    DATABASE = 'AdventureWorks',
    NAMESPACE = 'http://AdventureWorks/Contact'
);

После создания конечной точки вы можете отправить HTTP-запрос на сервер, чтобы убедиться, что конечная точка отвечает: http://localhost/Contact?wsdl.

Чтобы изменить или остановить конечную точку, вы можете использовать команду ALTER ENDPOINT:

ALTER ENDPOINT SQLEP_GetContact
    STATE = STOPPED;

Вы можете продолжить, проверив следующие статьи:

ОБНОВЛЕНИЕ: Следуя комментарию Эд Харпера , приведенному ниже, обратите внимание, что собственные веб-службы XML в SQL Server 2008 объявлены устаревшими (ноябрь 2009 г.), и эта функция будет удалена в будущей версии SQL Server. Вместо этого Microsoft предлагает использовать веб-сервисы WCF. Источник: MSDN - Собственные веб-службы XML: устарело в SQL Server 2008

10 голосов
/ 17 января 2010

Хотя использование Службы данных WCF может быть вариантом, точно так же, как Антон сказал , вам следует подумать, если это хорошая идея - предоставить прямой путь к вашей полной / частичной базе данных .

Другой вариант - создать слой доступа к данным, который позволит использовать небольшой набор операций, например: «Вы можете добавить клиента, но вам не разрешено удалять счет»

3 голосов
/ 22 июля 2011

Скотт Хансельман объясняет, как создать службу данных OData / Open Data / WCF из базы данных с помощью Visual Studio 2010:

http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowIncludingXMLAndJSONIn30Minutes.aspx

1 голос
/ 17 января 2010

Я думаю, вы захотите прочитать о службах данных WCF, доступных в .net Framework 3.5 и более поздних версиях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...