【问题标题】:Web clients needs to interact with a private server databaseWeb 客户端需要与私有服务器数据库交互
【发布时间】:2015-04-02 07:18:15
【问题描述】:

我们在商业大楼内的网络中的服务器上安装了 SQL Server 2005。目前无法通过网络访问服务器,我们希望保留它。

现在我们有一个网站,客户可以在其中填写预订并进行付款。为此,我们需要连接并从数据库中获取数据。我们正在考虑使用 Web 服务 (WCF),但我们不会将服务托管在我们的本地服务器上,而是将其托管在第三方托管服务提供商上。

这是我们有问题的地方。与 wcf 和网站的集成没有问题,因为它只是一个标准服务,但是有没有办法在这种情况下创建一个服务?

Web 客户端-----连接到----->WCF 服务

WCF 服务-----向----->本地服务器发送请求

本地服务器------发送数据到------>WCF服务

WCF------>将数据发送到------> Web 客户端

通过我们的研究,我们发现了双工通信和回调合约,但我们不确定它是否适用于我们。据我们所知,我们需要让本地服务器监听 WCF 并在请求进来时采取相应的行动。

请帮助我们弄清楚我们是否走错了方向,或者我们是否应该走这条路。还有没有更好的标准化方式来执行这种操作?

【问题讨论】:

  • 您是说您需要在云上托管一个网站,但该网站需要来自本地数据库的数据?
  • 您是否还说您目前正在考虑 WCF 服务如何在这种情况下提供帮助?如果是这样,那么 WCF 服务是否也托管在云上,还是您可以将其放在本地?
  • 它在云端,但是,我们正在考虑自己托管它,因为这本身就是矛盾的。使用 WCF,我们希望在 WCF 和 SQL 之间实现双工连接,并且每个客户端请求都被重定向到 SQL 服务器并通过发布者/订阅者架构再次返回到客户端,尽管这听起来简单得多,比现实中的

标签: .net sql-server web-services wcf


【解决方案1】:

我将允许您的本地数据库接受来自将托管您的 WCF 服务的服务器的连接。您可以将其设置为只有该服务器可以连接到您的数据库,因此尽管它可以通过 Web 访问,但它只接受您的 WCF 主机。

但是,如果您只有存储过程和基本 API,可能会更容易。不确定您的网站是由什么组成的,无论是 ASP.net 还是 PHP 或其他东西,但我目前正在开发一个像您一样的系统,该系统在客户自己的专用网络上有一个 MSSQL DB。我们是这样做的:

PHP 应用程序具有从 MSSQL 服务器获取数据的接口(它直接从表中获取数据以保持完整性)。然后我们有一个目的是向他们的数据库发送数据,但是该数据需要在客户端触发其他事情,所以我们在 MSSQL 服务器上创建了一个存储过程来处理数据到达时的操作。数据由 GUID 标识。

在 Web 应用程序 (PHP) 上,我们有接口可以在将来根据需要更改此实现。我也在使用队列服务,因此如果连接丢失,则数据会排队等待稍后,但我也有几项检查以确保没有重复和覆盖等。

另外,我正在缓存 MSSQL 数据库中的记录,以便数据在队列中刷新,因此不会影响用户的性能。

如果您需要进一步说明,请告诉我 - 我们的名称完全相同 :)

【讨论】:

  • 确实是小世界:) 是的,这将是为 WCF 服务打开服务器的理想选择,因为它会自动解决此问题。 API 托管在本地客户端的服务器上?
  • :) 这是您要查找的内容还是没有回答您的问题?
猜你喜欢
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 2015-01-02
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
相关资源
最近更新 更多