在 .NET 4.6.1 上使用 SignalR Core
Using SignalR Core on .NET 4.6.1
如 SignalR differences documentation 中所述,我们可以在 .NET 4.6.1 及更高版本上使用 SignalR Core...
所以我知道两种情况的启动和配置代码:
SignalR 核心:
配置服务
//Add SignalR service
services.AddSignalR();
启动
app.UseSignalR(routes =>
{
routes.MapHub<NotificationsHub>("/notification");
});
信号R:
启动
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 核心方法,我现在得到的是(未授权)在协商请求期间。
经过一番研究后,我在 ASP.NET forum 上问了同样的问题,我得出的结果是 不可能 在任何 .NET Framework 项目上使用 SignalR Core。我们只能在 .NET Core 项目上使用它,它支持将框架定位到 .NET Framework 4.6.1 或更高版本,然后在支持的平台上编译和 运行 应用程序。
这里有更多详细信息:
https://forums.asp.net/t/2160460.aspx
虽然 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 核心构建于 ASP.NET 核心之上。没有它,您将无法使用 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。
如 SignalR differences documentation 中所述,我们可以在 .NET 4.6.1 及更高版本上使用 SignalR Core...
所以我知道两种情况的启动和配置代码:
SignalR 核心:
配置服务
//Add SignalR service
services.AddSignalR();
启动
app.UseSignalR(routes =>
{
routes.MapHub<NotificationsHub>("/notification");
});
信号R:
启动
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 核心方法,我现在得到的是(未授权)在协商请求期间。
经过一番研究后,我在 ASP.NET forum 上问了同样的问题,我得出的结果是 不可能 在任何 .NET Framework 项目上使用 SignalR Core。我们只能在 .NET Core 项目上使用它,它支持将框架定位到 .NET Framework 4.6.1 或更高版本,然后在支持的平台上编译和 运行 应用程序。
这里有更多详细信息: https://forums.asp.net/t/2160460.aspx
虽然 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 核心构建于 ASP.NET 核心之上。没有它,您将无法使用 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。