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指南.它将通过真实的事件记录,安装和命令行测试让您快速启动并运行.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...