我有一项特殊服务,不断从现场24/7输出更新。由于它使用推送机制和专有,它需要相应的专有客户端来接收更新。我不确定这是否是一种正确的方法,但我被要求编写一个WCF服务,将接收的数据公开为JSON中的Web服务。我在想的是编写一个Web服务,包含一个持续运行的进程,在内存中接收更新和缓存更新,每当调用我的Web服务时,我都会将缓存的数据放回JSON中。
据我了解,ServiceHost并不是经常运行。相反,当有人点击服务时它会被激活。这并不理想,因为我们需要接收所有数据(或至少是最近X天的数据)。
如果当前听起来很愚蠢,我也欢迎任何不同的方法。
fredell
答案 0 :(得分:0)
WCF支持self-hosting,它基本上可以让你做任何你想做的事。
您可以编写承载WCF服务的Windows服务应用程序。 Windows服务将持续运行并接收专有的推送通知,内部托管的WCF服务将允许您访问接收的数据。
这种方法对我来说似乎很好,但要注意内存耗尽:也许你想在一些时间序列数据库中保存接收到的数据,所以如果你的服务崩溃,它就不会丢失 - 你的服务也不会如果没有人实际通过WCF轮询数据,则会占用大量RAM。