什么是通过Web服务公开SQL Server数据库的最佳方式

问题描述:

我们在内部网络上有一个SQL Server。但是,现在我们要创建一个公共网站,允许用户访问SQL Server上的一些数据。为了避免让公共Web服务器直接访问SQL Server,我们决定编写一个Web服务来公开必要的数据库对象。该服务(和消费网站,它的价值)将用.NET编写。在我看来,我们在这里有两个选择。什么是通过Web服务公开SQL Server数据库的最佳方式

  • 我们已经在SQL Server上有用于报告服务的IIS,所以我可以构建一个由IIS托管的Web服务。
  • 我们已经有一个Windows服务为有问题的数据库执行其他维护功能,所以我可以使用WCF并将Web服务功能嵌入到现有服务中。

我倾向于IIS方法,因为这似乎更简单。我错了吗?

不要重新将您的Windows服务重新定位为Windows服务。保持互联网远离那件事。

构建一个IIS托管的Web服务,并将其分开保护。

+1

+1 @Leon是正确的,出于安全/性能原因,请勿将数据库直接暴露于Internet。将您的服务部署到专用服务器。顺便说一句,[WCF数据服务](http://msdn.microsoft.com/en-us/data/odata.aspx)(OData)是通过服务公开数据的一种非常灵活的方式。如果将它与实体框架相结合,实现也非常简单。 – wdosanjos