为什么我的 HubConnectionBuilder 无法在 HubConnectionBuilder().Build 上运行?

Why is my HubConnectionBuilder not working on HubConnectionBuilder().Build?

我正在尝试学习如何使用 C# 客户端连接到 SignalR 服务器。而且我不确定我正在执行的步骤是否会被认为是好的(会起作用)。因为我当然会出错...

我正在尝试建立与站点的连接:

        var connection = new HubConnectionBuilder()
            .WithUrl(new Uri("http://localhost:5100/appsHub"))
            .WithAutomaticReconnect()
            .Build();

一旦我 运行 我得到下面的。我不太确定是什么问题,但这是因为 link?或者我应该默认使用不同的项目?

Inner Exception 1:
FileLoadException: Could not load file or assembly 'System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)

然后我想将 id 作为 JSON 对象发送到 URL。

我已经尝试让这个工作一周了,是的,我不知道该怎么做:(。

如有任何帮助,我们将不胜感激。

此致,

你的问题可能是项目框架和“*.SignalR.Client”包版本不兼容

右键单击您的项目并从属性菜单中检查目标框架版本。版本必须与“* .SignalR.Client”包兼容。

like here

小心教程。 通常他们使用最新的软件包版本。例如。 ASP.NET Core SignalR .NET Client 提议这样做:

Install-Package Microsoft.AspNetCore.SignalR.Client

如果最新的包版本以与您的项目相同的框架版本为目标,则此方法工作正常。但是,如果您的项目针对另一个框架版本,那么您将遇到您发布的错误。

目前 VS2019 中控制台应用程序的默认目标框架是 netcoreapp3.1
最新 Microsoft.AspNetCore.SignalR.Client 需要 net5.0.

将控制台应用程序的目标框架更改为 net5.0,或使用 Microsoft.AspNetCore.SignalR.Client v3.1.x(3.1.10 是与 netcoreapp3.1 兼容的最新版本)。


IMO,这个包版本控制非常烦人。

我们有大约 300 个项目,我们的 LTS 版本将使用 netcoreapp3.1 直到其生命周期结束。如果现在在 VS 中打开 LTS 版本源和 Nuget 选项卡,他会看到很多“可用”包更新。但由于框架版本不兼容,无法应用这些更新。这些垃圾隐藏了许多第三方包的重要更新,这些包针对 netstandard 并且不属于 .NET Core/.NET。

因此,很多时间都浪费在监控第三方软件包的更新上。