是否有任何 .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;
您可能需要查看以下文章以继续:
- Devx.com - Easy Web Services with SQL Server 2005 HTTP Endpoints
- MSDN - Overview of Native XML Web Services for Microsoft SQL Server 2005
- Developer.com - Native XML Web Services in SQL Server 2005
更新:关注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/