加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:22:27 所属栏目:百科 来源:网络整理
导读:我有一个用c#(MVC)编写的网站和一个用c#编写的 Windows服务.两者都在同一台机器上运行.想法是让他们共享同一个数据库. Windows服务充当引擎,网站更像是前端,显示引擎执行的计算结果.通信由从Web服务器到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-rpc在Win32 LRPC transport layer上提供消息序列化.

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读