亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

.Net Core SignalR 無法在啟動時添加或使用

.Net Core SignalR 無法在啟動時添加或使用

C#
繁花如伊 2023-09-16 15:00:33
我最近又回到了一個使用 SignalR 的舊 .Net Core 應用程序。我認為當時唯一可用于 .Net Core 應用程序的 SignalR NuGet 包是預覽版。它起作用了。我現在在一臺新機器上,不知道這個包的預覽源是什么,所以我卸載了它并安裝了這個:> Install-Package Microsoft.AspNet.SignalR.Core -Version 2.4.1除了 Startup.cs 文件中的這兩個錯誤之外,只要進行一些命名空間更改,一切似乎都很好。錯誤 CS1061“IServiceCollection”不包含“AddSignalR”的定義,并且找不到接受“IServiceCollection”類型的第一個參數的可訪問擴展方法“AddSignalR”(您是否缺少 using 指令或程序集引用?)錯誤 CS1061“IApplicationBuilder”不包含“UseSignalR”的定義,并且找不到接受“IApplicationBuilder”類型的第一個參數的可訪問擴展方法“UseSignalR”(您是否缺少 using 指令或程序集引用?)Microsoft.AspNetCore.SignalR.Http我環顧四周,除了有人建議你需要安裝我找不到的東西之外,沒有太多可用的東西。其他人建議你需要安裝這個:Install-Package Microsoft.AspNetCore.SignalR.Client -Version 1.1.0我已經嘗試過,但錯誤仍然存在,我該如何消除這些錯誤?
查看完整描述

5 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

我通過替換代碼解決了這個問題

app.UseSignalR(routes =>
        {
            routes.MapHub<NotifyHub>("notify"); 
        });

app.UseEndpoints(endpoints =>
        {
            endpoints.MapHub<NotifyHub>("/notify");
        });

我使用的是點網5.0


查看完整回答
反對 回復 2023-09-16
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

解決方案是使用.UseEndpoints().?正如 MSFT 所記錄的,這是推薦的方法,將.UseSignalR(),

推薦方法:

app.UseEndpoints(endpoints?=>
{
????endpoints.MapHub<SomeHub>("/path");
});

從 .NET Core 版本 3.0 開始,它.UseSignalR()已過時,建議開始.UseEndpoints()使用 .NET Core 版本 3.1。

查看完整回答
反對 回復 2023-09-16
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

Microsoft.AspNetCore.SignalR自 2.1 起成為 ASP.NET Core 的一部分。

因此,如果您在 Visual Studio 中的“項目”->“屬性”->“目標框架”下將目標版本設置為 NET Core 2.1 或更高版本,則應該能夠調用您的services.AddSignalR()方法ConfigureServices。


查看完整回答
反對 回復 2023-09-16
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

點網5.0

先添加包:

dotnet add package Microsoft.AspNet.SignalR.Core --version 2.4.1

中,public voidConfigureServices(IServiceCollection services)

services.AddSignalR();

在,公共無效配置(IApplicationBuilder應用程序,IWebHostEnvironment env)

app.UseEndpoints(endpoints =>
        {
            endpoints.MapHub<NotifyHub>("/notify");
        });


查看完整回答
反對 回復 2023-09-16
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

我在項目依賴項中發現了對舊 Mvc nuget 的引用,這導致其余項目加載舊的 .net core 包,即使每個項目都有 .net6.0 配置(由錯誤的 .net 更新引起)。能夠添加Microsoft.AspNet.SignalR.Core引用而不添加任何包(signalR 包含在 netcore 中)的解決方案是刪除 Mvc nuget 引用并在 csproj 中包含下一個引用。

<ItemGroup>
   <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>


查看完整回答
反對 回復 2023-09-16
  • 5 回答
  • 0 關注
  • 282 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號