Expor a base de dados do servidor SQL como serviço web para obter dados de

Existe alguma ferramenta. NET para expor os dados das minhas tabelas no servidor SQL da Microsoft como serviços web? Tenho de escrever o código? Há alguma amostra? Qual a sua recomendação sobre como expor os dados?

Author: Daniel Vassallo, 2010-01-17

4 answers

Embora usaros Serviços de dados WCF possam ser uma opção, tal comoo Anton said , deve considerar se é boa ideia fornecer um caminho directo para a sua base de dados inteira/parcial.

Outra opção é construir uma camada de acesso de dados, que permitirá apenas um pequeno conjunto de operações, como: "você pode adicionar um cliente, mas não está autorizado a apagar uma factura"

 10
Author: Rubens Farias, 2017-05-23 12:00:28

A partir do SQL Server 2005, poderá expor os Serviços Web XML nativos directamente da base de dados.

O servidor SQL pode ser configurado para ouvir nativamente os pedidos de HTTP SOAP através de um endpoint HTTP. Em geral, você gostaria de expor procedimentos armazenados ou funções definidas pelo usuário como endpoints HTTP, então um pouco de codificação é necessária. Mas deve ser muito fácil seguir os exemplos.

Normalmente começaria por criar um procedimento armazenado como segue:

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

E então você definiria o seu ponto final HTTP assim:

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'
);

Depois de criar o endpoint, você pode submeter um pedido HTTP ao servidor para garantir que o endpoint está respondendo: http://localhost/Contact?wsdl.

Para modificar ou parar o seu objectivo, pode utilizar o comando ALTER ENDPOINT:

ALTER ENDPOINT SQLEP_GetContact
    STATE = STOPPED;

Pode querer prosseguir verificando os seguintes artigos:

UPDATE: Following Ed Harper ' s comment below, please note that native XML web services have been depreciated in SQL Server 2008 (November 2009), and this feature will be removed in future version of SQL Server. A Microsoft está a sugerir a utilização de serviços Web WCF Sim. Fonte: MSDN-Serviços Web XML nativos: desactualizados no servidor SQL 2008

 19
Author: Daniel Vassallo, 2017-05-23 12:09:27

Scott Hanselman explica como criar um serviço de dados OData / Open Data / WCF a partir de uma base de dados utilizando o Visual Studio 2010:

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

 3
Author: Stephen Oberauer, 2011-07-22 14:53:00
Acho que vai querer ler sobre os Serviços de dados WCF, disponíveis no.NET Framework 3.5 e mais.
 1
Author: Anton, 2010-01-17 08:29:01