开发一个带有Windows服务和前端UI的系统,用于配置和控制Windows服务。我会使用.net 4.6。
该服务将产生多个服务器,用户可以通过UI创建,启动和停止这些服务器。
研究我的UI控制服务和从服务器接收状态信息的最佳方式。
根据我的研究,这些是我发现的:
SQLITE - 创建UI写入命令的消息队列,服务器将定期读取并响应另一个消息队列。不理想,因为它不活,需要一个投票系统。
命名/匿名管道 - 实时请求/响应。可行,但在处理与单个服务器通信的多个客户端时,它有点笨拙。
WCF - 实时请求/响应。除了用户需要担心为系统运行配置有效端口之外,很好并且易于实现。
滚动我自己的通信协议 - 实时请求/响应,但同样的问题适用于选择端口号。
今天的技术还缺少什么?
答案 0 :(得分:0)
我实际上并没有意识到命名管道可以与WCF一起使用。 发现这篇文章很理想。非常容易实现,用户不必担心选择IP端口等。
答案 1 :(得分:0)
因为我们列出了所有选项,所以MemoryMappedFile与EventWaitHandle结合使用
https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files
https://docs.microsoft.com/en-us/dotnet/standard/threading/eventwaithandle
与WCF相比,MemoryMappedFile + EventWaitHandle
https://www.techmikael.com/2010/02/blazing-fast-ipc-in-net-4-wcf-vs.html
答案 2 :(得分:0)
Signalr和OWIN / Katana
https://docs.microsoft.com/en-us/aspnet/signalr/overview/deployment/tutorial-signalr-self-host
执行简单的HTTP POST / GET请求和响应,使用Signalr,您可以进行实时发布/订阅。请参阅链接以获取良好的介绍。