【问题标题】:Using SignalR Core on .NET 4.6.1在 .NET 4.6.1 上使用 SignalR Core
【发布时间】:2020-02-04 17:45:07
【问题描述】:

正如SignalR differences documentation 中所说,我们可以在 .NET 4.6.1 和更高版本上使用 SignalR Core...

所以我知道这两种情况的启动和配置代码:

SignalR 核心:

配置服务

//Add SignalR service
services.AddSignalR();

启动

app.UseSignalR(routes =>
{
    routes.MapHub<NotificationsHub>("/notification");
});

SignalR:

启动

app.Map("/signalr", map =>
{
    map.UseCors(CorsOptions.AllowAll);
    var hubConfiguration = new HubConfiguration { };
    hubConfiguration.EnableDetailedErrors = true;
    map.RunSignalR(hubConfiguration);
});

我的问题是,我需要在 .NET 4.6.1 启动中做什么来映射我的 SignalR 集线器等...? 我找不到关于这个特殊案例的任何文档。

更新1: 我尝试运行相同的代码,并且显然更改了客户端代码以使用 SignalR 核心方法,而我现在得到的是(未授权)协商请求。

【问题讨论】:

  • 请注意,链接文档已更新,现在仅显示“.NET Framework 4.5 或更高版本”和“.NET Core 3.0 或更高版本”

标签: c# asp.net-core-signalr .net-4.6.1


【解决方案1】:

经过一些研究并在ASP.NET forum 上提出同样的问题后,我得出的结果是不可能在任何设备上使用 SignalR Core .NET 框架项目。我们只能在 .NET Core 项目上使用它,它支持将框架定位到 .NET Framework 4.6.1 或更高版本,然后在支持的平台上编译和运行应用程序。

更多细节在这里: https://forums.asp.net/t/2160460.aspx

【讨论】:

    【解决方案2】:

    虽然 OP 已经回答了这个问题,但我认为为了其他可能偶然发现它的人的利益,有必要提供更完整的答案。

    ASP.NET Core 版本 1 到 2.2 支持以 .NET Framework v4.6.1+ 为目标,以简化从 ASP.NET v4 到 ASP.NET Core 的转换。此支持已在 ASP.NET Core v3 中删除。

    虽然 SignalR 和 SignalR Core 都有针对 .NET Framework v4.6.1+ 的 nuget 包,但它们具有不同的依赖项。由于其中一个 SignalR nuget 包被称为 Microsoft.AspNet.SignalR.Core。

    总而言之,SignalR Core 是基于 ASP.NET Core 构建的。没有它,您将无法使用 SignalR Core。如果您想在仍以 .NET Framework v4.6.1-v4.8 为目标的同时使用 SignalR Core,您只能通过创建 ASP.NET Core v1-v2.2 项目然后将其目标框架更改为 .v4.6.1-v4 来实现.8.

    在撰写本文时,对于 ASP.NET v4 应用程序,SignalR 的最新支持版本是 v2.4.3。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多