簡體   English   中英

在 .NET 4.6.1 上使用 SignalR Core

[英]Using SignalR Core on .NET 4.6.1

SignalR 差異文檔中所述,我們可以在 .NET 4.6.1 及更高版本上使用 SignalR Core ...

SignalR 差異

所以我知道這兩種情況的啟動和配置代碼:

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 啟動到 map 我的 SignalR 集線器等...? 我找不到有關此特定案例的任何文檔。

Update1:我嘗試運行相同的代碼,顯然更改了客戶端代碼以使用 SignalR 核心方法,我現在得到的是(未授權)在協商請求期間。

經過一些研究並在ASP.NET 論壇上提出了同樣的問題后,我得出的結果是,在任何 .NET 框架項目上都無法使用 SignalR 核心。 我們只能在 .NET 核心項目上使用它,它支持將框架定位到 .NET 框架 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 Core 建立在 ASP.NET Core 之上。 沒有它你不能使用 SignalR 核心。 如果您想使用 SignalR 核心,同時仍以 .NET 框架 v4.6.1-v4.8 為目標,您只能通過創建 ASP.NET 核心 v1-v2.2 項目,然后將其目標框架更改為 .v4.6.1-v4.8 來實現。

在撰寫本文時,對於 ASP.NET v4 應用程序,SignalR 的最新支持版本是 v2.4.3。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM