3

我需要将数据从 Web 应用程序提交到控制台应用程序。当前计划要求 Web 应用程序将数据提交到数据库,并要求控制台应用程序轮询数据库,然后在插入数据时对数据进行操作。我是否应该更改控制台应用程序以包含 Web 应用程序可以提交数据的 http 处理程序,这样它就不必轮询数据库?有没有更好的方法在这两个应用程序之间传递数据?控制台应用程序永远不必向 Web 应用程序发送数据。

更新

这是一个 .NET 2.0 控制台应用程序,因此 WCF 似乎不是一个可行的选择。数据负载相当小(几个 9 位 ID 字段,总共不到 150 个字节),并且将以每分钟 10 个左右的速率发送。这两个应用程序之间没有防火墙。

4

3 回答 3

2

我不确定您的要求或设置,但WCF可能是一种选择。

[编辑]
要扩展,您可以在控制台应用程序中托管 wcf 服务,并让 asp.net 站点调用它。就此而言,远程处理(或任何其他形式)也可以工作。这样,您就不必在不需要时让控制台应用程序池化数据库。

于 2009-02-06T22:56:50.810 回答
0

你基本上想要一个应用程序到应用程序的通信。有很多选择,但实际上取决于您的要求(数据量、大小、频率、延迟)、环境(防火墙后、在线/离线、恢复)等。

使用数据库是一种解决方案。但是你可以使用其他的——比如 web 服务 (wcf)、消息系统 (msmq)、.net 远程处理。

于 2009-02-06T22:58:38.170 回答
0

使用最简单的技术,您的控制台应用程序可以在由 Timer 或 BackgroundWorker 控制的循环中连接到数据库。您需要一种方法来了解哪些记录是新的,哪些不是。如果您可以在轮询时从该表中删除记录,这意味着每次执行此操作时,您只会获得新记录。如果您无法删除它们,请使用该表中的时间戳字段,并且每次轮询时选择该时间戳大于前一批的最大时间戳的记录。如果您需要将这些记录标记为已处理,则可以设置该标志并忘记时间戳。

于 2009-02-07T11:01:44.623 回答