如何在应用程序(控制台或服务)和Web服务之间共享数据?

时间:2015-07-30 02:46:45

标签: c# .net web-services service

我有以下情况:

  • 一个窗口服务,用于处理数据并维护表示统计信息的数据结构等

  • 一个简单的REST Web服务(asp.net webapi)

我希望在给定由mvc.net webapi控制器处理的Web请求时,返回的数据由Windows服务提供。

简单地说,我想避免仅使用数据库将数据从Windows服务传递到Web应用程序控制器。

原因在于性能,因为它是实时数据和相当大的数据,所以我想避免实时数据库读写的瓶颈......

这可能吗?

Redis是唯一的选择吗?

我肯定会感谢更多的.NET'在应用程序之间缓存数据的方式比通过Vagrant设置通过VirtualBox运行Ubuntu机器...

谢谢!

3 个答案:

答案 0 :(得分:1)

这几乎是MSMQ设计的理想选择。

答案 1 :(得分:1)

由于Mati Cicero,我终于走了Redis的道路, 它看起来非常适合实时需求。

我必须使用ServiceStack因为我在C#中,我唯一的失望是设置可能更简单(Redis的Ubuntu服务器,在VirtualBox中运行)。

我希望这个设置可以在生产环境中运行(Win Server for C#parts + Linux Server for Redis)......

答案 2 :(得分:0)

由于数据是可恢复的,您可以尝试快速非持久性NoSQL存储。

更好的是根本没有共享数据。将Web服务调用到Windows Server中以仅请求它现在需要的数据。维护共享状态(例如在数据库中)是繁重的。如果可能的话,我完全避免这种情况。

非常快速的IPC机制将是WCF而不是命名管道。