c# - 将 SQL Server 数据库公开为 Web 服务以从中获取数据

标签 c# .net sql-server web-services

是否有任何 .NET 工具可以将我在 Microsoft SQL Server 中的表数据公开为 Web 服务?我必须写代码吗?有 sample 吗?您对如何公开数据有何建议?

最佳答案

从 SQL Server 2005 开始,您可以直接从数据库公开 native XML Web 服务。

SQL Server 可以配置为通过 HTTP 端点 native 监听 HTTP SOAP 请求。通常,您希望将存储过程或用户定义的函数公开为 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;

您可能需要查看以下文章以继续:

更新:关注Ed Harper在下面的评论中,请注意原生 XML Web 服务已在 SQL Server 2008(2009 年 11 月)中弃用,并且此功能将在 SQL Server 的 future 版本中删除。 Microsoft 建议改用 WCF Web 服务。来源:MSDN - Native XML Web Services: Deprecated in SQL Server 2008

关于c# - 将 SQL Server 数据库公开为 Web 服务以从中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080412/

相关文章:

c# - Cosmos 中的 GUI : Help in C#

c# - 如何在连接字符串中设置用户名和密码以连接到数据库?

c# - ReSharper:如何删除 "Possible ' System.NullReferenceException'”警告

c# - MonoDevelop 的 LINQ2SQL 替代品

c# - LINQ:为什么数组和列表使用不同的迭代器

sql-server - 将 SQL Server 命名参数与 ExecuteStoreQuery 和 ExecuteStoreCommand 结合使用

sql - 批量插入不插入任何行

c# - 使用 DataContractJsonSerializer 设置 JSON 对象根

c# - CRM 创建 CrmConnection 的新实例

c# - AJAX 调用的空白输出