SignalR不能与.Net Core一起使用

时间:2017-03-11 01:57:22

标签: asp.net asp.net-core signalr .net-core

我正在尝试在 C#Asp.Net核心项目中使用NuGet包管理器安装 SignalR ,但我收到此错误,即SignalR与.net核心不兼容,它真的不是支持者了吗?或者我可以做些什么让它发挥作用? (如果重要的话,我正在使用VS2017)。错误:

Restoring packages for D:\Test\Test.WebAPI\Test.WebAPI.csproj...
Package Microsoft.AspNet.SignalR.Core 2.2.1 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Microsoft.AspNet.SignalR.Core 2.2.1 supports: net45 (.NETFramework,Version=v4.5)
Package Owin 1.0.0 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Owin 1.0.0 supports: net40 (.NETFramework,Version=v4.0)
Package Microsoft.Owin 2.1.0 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Microsoft.Owin 2.1.0 supports:
  - net40 (.NETFramework,Version=v4.0)
  - net45 (.NETFramework,Version=v4.5)
Package Microsoft.Owin.Security 2.1.0 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Microsoft.Owin.Security 2.1.0 supports: net45 (.NETFramework,Version=v4.5)
One or more packages are incompatible with .NETCoreApp,Version=v1.1.
Package restore failed. Rolling back package changes for 'Test.WebAPI'.

更新:

ASP.Net的信号核心目前(01.01.2018)在NuGet中作为alpha版本提供。

https://www.nuget.org/packages/Microsoft.AspNetCore.SignalR/

UDPATE 01.06.2018:

SignalR现在可用于ASP.Net Core 2.1

7 个答案:

答案 0 :(得分:11)

SignalR 2是为.NET Framework而构建的,不适用于.NET Core。他们仍在使用SignalR for .NET Core。

ASP.NET核心路线图的old revision将SignalR显示为ASP.NET Core 1.2的一部分。 latest revision没有提及SignalR(或任何框架),但确实提到1.2计划在2017年第二季度。

那里的a video微软人员正在讨论ASP.NET Core中的SignalR。这是一个小时,所以我不会为你看。但也许有一些有用的信息在那里。

答案 1 :(得分:4)

我目前正在使用signalr进行.net core / angular 4项目。

google上有一些种子示例,但有一件事可能会让大多数人试图通过nuget下载signalr这是一个事实,它是一个不同的包回购 - 你需要在你的解决方案中更新Nuget.config以引用更多的前沿回购:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" />
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

答案 2 :(得分:4)

对于asp.net核心

SignalR

编辑: SignalR for asp.net core has been released with .net standard 2.1.

This package targets .net standard 2.0 and is still in the alpha state.

It doesn't seem like a stable release is out before .net standard 2.1.

enter image description here

可以在myget上找到这些包。

如果您对信号器集线器进行负载平衡,则可以使用redis作为背板。

针对asp.net的SignalR

还有针对.net框架的SignalR软件包,它已经具有稳定版本。它可以在nuget找到。

对于load balancing,支持以下backpane类型:

  • Azure Service Bus
  • Redis的
  • SQL Server
对于asp.net核心

SignalR.Server  (更新18.09.2017:暂不可用)

请勿使用此套餐!

这是已弃用的软件包,其目标是.net 4.5.1和.net标准1.6。没有稳定的包装,也将永远不会发布。

可以在myget上找到预览包。

如果您对信号器集线器进行负载平衡,则可以使用sql server作为背板。 (但是implementation is broken

答案 3 :(得分:2)

这是正确的。 SignalR建立在OWIN之上,如果你的目标是完整的框架,那么它与asp.net核心兼容,而不是dotnet核心。

答案 4 :(得分:1)

我最近迁移了一个将SignalR用于 ASP.NET Core 1.1 netcoreapp1.1)的MVC5应用程序。我找到了一个非正式的软件包(Gray.Microsoft.AspNetCore.SignalR.Server),它几乎没有对我现有的代码进行任何更改。

csproj文件

<PackageReference Include="Microsoft.AspNetCore.WebSockets" Version="1.0.2" />
<PackageReference Include="Gray.Microsoft.AspNetCore.SignalR.Server" Version="0.2.0-alpha1" />

启动 - ConfigureServices方法

services.AddSignalR();

启动 - 配置方法

app.UseWebSockets();
app.UseSignalR();

答案 5 :(得分:0)

可以在NuGet上找到以下软件包。

Microsoft.AspNetCore.SignalR 1.0.0-alpha1-final 用于在Web上提供实时双向通信的组件。

Microsoft.AspNetCore.SignalR.Redis 1.0.0-alpha1-final Redis for ASP.NET Core SignalR。

软件包支持.NETSTandard,版本= v2.0现在。 我在我的项目中使用了这些包。 角度4 + SignalR

答案 6 :(得分:0)

.NET Core引入了SignalR 这是实施链接 https://www.youtube.com/watch?v=1TrttIkbs6c