asp.net-core - aspnet core 2.1中AddSignalR和AddSignalRCore扩展方法的区别

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

我正在尝试在我的aspnet core 2.1项目中配置SignalR。在Startup.cs类中,在ConfigureServices()方法中有2个选项可供使用。

services.AddSignalR()
services.AddSignalRCore()

这两种方法有什么区别?

我可以轻松地通过 services.AddSignalR() 使用 signalR,但是当我将其更改为 services.AddSignalRCore() 时,它会抛出错误。

最佳答案

AddSignalR()AddSignalRCore() 多调用两个附加服务,如下所示:

这是AddSignalR()方法的代码:

public static ISignalRBuilder AddSignalR(this IServiceCollection services, Action<HubOptions> configure)
{
    services.Configure(configure);
    services.AddSockets();
    return services.AddSignalRCore();
}

这是AddSignalRCore()方法的代码:

public static ISignalRBuilder AddSignalRCore(this IServiceCollection services)
{
    services.AddSingleton(typeof(HubLifetimeManager<>), typeof(DefaultHubLifetimeManager<>));
    services.AddSingleton(typeof(IHubProtocolResolver), typeof(DefaultHubProtocolResolver));
    services.AddSingleton(typeof(IHubContext<>), typeof(HubContext<>));
    services.AddSingleton(typeof(HubEndPoint<>), typeof(HubEndPoint<>));
    services.AddScoped(typeof(IHubActivator<>), typeof(DefaultHubActivator<>));
    
    services.AddAuthorization();
    
    return new SignalRBuilder(services);
}

关于asp.net-core - aspnet core 2.1中AddSignalR和AddSignalRCore扩展方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53985371/

相关文章:

c# - Asp.NET Core MVC 基于角色的授权

c# - ASP.NET 5 跨平台,老式 DLL 将何去何从?

c# - .net core 中的默认最大请求长度是多少

windows-7 - SignalR .NET Client在Windows 7上不支持WebSockets

c# - Asp.net core架构开发中我心目中的一些问题

swagger - 如何更改 Swagger 图标?

c# - 迁移到 dotnet Core 3.1 后未找到 UseSpaStaticFiles()

ubuntu - 在 Ubuntu16.04 上使用 systemD 时 DotnetCore 内容根路径发生变化

c# - 未触发 Hub 管道模块的 OnIncomingError

javascript - SignalR CORS 错误