我需要将Web应用程序中的数据提交到控制台应用程序。当前计划要求Web应用程序将数据提交到数据库和控制台应用程序以轮询数据库,然后在插入数据时对其进行操作。我是否应该更改控制台应用程序以包含Web应用程序可以提交数据的http处理程序,以便它不必轮询数据库?有没有更好的方法在这两个应用程序之间传递数据?控制台应用程序永远不必将数据发送到Web应用程序。
更新
这是一个.NET 2.0控制台应用程序,因此WCF似乎不是一个可行的选择。数据有效负载相当小(几个9位ID字段,总共少于150个字节),并且将以每分钟大约10个的速率发送。这两个应用程序之间没有防火墙。
答案 0 :(得分:2)
我不确定您的要求或设置,但WCF可能是一种选择。
[编辑]
要扩展,您可以在控制台应用程序中托管wcf服务,并让asp.net站点调用它。就此而言,远程处理(或任何其他形式)也可以起作用。这样,您就不必在没有必要时将控制台应用程序池合并到数据库中。
答案 1 :(得分:0)
您基本上希望应用与应用进行通信。 有很多选择,但实际上取决于您的要求(数据量,数量,频率,延迟),环境(防火墙,在线/离线,恢复)等等。
使用数据库是一种解决方案。但你可以使用其他人 - 比如webservice(wcf),消息系统(msmq),甚至.net远程处理。
答案 2 :(得分:0)
使用最简单的技术,您的控制台应用程序可以在由Timer或BackgroundWorker控制的循环中连接到数据库。您需要一种方法来了解哪些记录是新的,哪些不是。如果您在轮询它们时可以删除该表中的记录,则表示每次执行该记录时,您将只获得新记录。如果无法删除它们,请在该表中使用TimeStamp字段,并在每次轮询时选择时间戳大于上一批的最大时间戳的记录。如果您需要将这些记录标记为已处理,那么您可以设置该标志并忘记时间戳。