我必须从 Blazor 服务器端应用程序运行控制台应用程序。我如何构建一个轻量级的通信。我的网络应用程序和控制台应用程序之间的通道?

问题描述 投票:0回答:1

我有一个 Blazor 服务器端 Web 应用程序 (.NET6),在操作系统为 Windows Server 2019 的服务器上运行,在我们的 Intranet(不是互联网)中使用。最多有 50-60 个用户,大约。最多 5-10 个用户将同时登录该应用程序。在Web应用程序中有一个特殊的功能不能直接在Web应用程序中实现。因此,我们正在开发一个基于 .NET6(或 .NET Framework 4.7.2)的单独的 C# 控制台应用程序(或者稍后可能是 Wind.service)。

控制台应用程序将根据 Web 应用程序的需求从远程 PLC 读取 OPC 变量。它将被调用 max。 10-15个argument参数(要读取的变量),并将所需变量的值返回到Web应用程序。返回的时间并不紧迫。 因此,Web 应用程序和控制台应用程序(或服务)之间将存在非常轻量级的通信。控制台应用程序将与 Web 应用程序位于同一服务器上。

由于我之前没有编写过这样的用例,所以我无法决定在两个应用程序之间应该使用哪种通信渠道。我用谷歌搜索了很多,发现有一些替代方案,例如“tcp套接字”,“命名管道”,“WCF”,“rabbit mq”等。其中哪一个对于我的用例来说更现实并且需要更少的努力? 我从来没有使用过其中之一,当我选择其中之一时我必须学习。

c# console-application blazor-server-side named-pipes tcpsocket
1个回答
0
投票

如果您可以用 C# 编写控制台应用程序 - 它将在您的服务器端 Web 应用程序上运行。如果您需要该流程在请求之外运行,请使用托管服务。与请求之间的通信很容易,并且您可以完全控制一切。

微软文档: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-8.0&tabs=visual-studio

© www.soinside.com 2019 - 2024. All rights reserved.