微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 网站和Windows服务之间的通信

我有一个用c#(MVC)编写的网站和一个用c#编写的 Windows服务.两者都在同一台机器上运行.想法是让他们共享同一个数据库.

Windows服务充当引擎,网站更像是前端,显示引擎执行的计算结果.通信由从Web服务器到Windows服务的数据很少的命令组成.几乎没有命令/秒.

什么是他们沟通的好方法

解决方法

通常,Windows方面最快的是LRPC.根据您的需要,WCF可能是一个真正的问题.我们使用Win32 LRPC protobuffers从Web服务器到后台服务的吞吐量提高了约40倍.只是取决于你的需求.

(见Benchmarking WCF compared to Protocol Buffers + RpcLibrary)

protobuf-csharp-port具有定义服务和消息所需的大部分内容.然后使用protobuf-csharp-rpcWin32 LRPC transport layer上提供消息序列化.

一旦你过去在protobuffers中定义协议,这真的很容易.客户端/服务器上只需几行代码即可创建连接和代理类.

同样,这一切都取决于你在寻找什么;然而,恕我直言,目前还没有一个更好的RPC架构用于.NET Framework.当然,在我看来,我有偏见,但自2003年以来我们一直在使用这种变体,它只是起作用.

PS:如果您从头开始构建服务,可以查看我的Building a Windows Service Project Template指南.它将通过真实的事件记录,安装和命令行测试让您快速启动并运行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐