【发布时间】:2019-03-06 23:29:33
【问题描述】:
我正在使用Microsoft.AspNetCore.SignalR (1.1.0)
我在startup.cs有一些服务:
services.AddSingleton<IHostedService, MySingletonService>();
services.AddScoped<MyScopedService >();
现在我想在我的中心使用这个服务,所以我注入它:
private readonly MyScopedService _cs;
private readonly MySingletonService _ss;
public MyHub(MyScopedService cs, MySingletonService ss)
{
_cs = cs;
_ss= ss;
}
这仅适用于范围服务,只要服务是单例的,集线器就永远不会被调用并且无法在浏览器中连接。为什么这是不可能的?我只想要单例服务的现有实例,调用一个方法,然后再放手。
【问题讨论】:
-
这里发生了其他事情。在像集线器这样生命周期更有限的东西中使用单例服务没有问题。您需要在此处提供更多信息。也许发布导致问题的服务代码和/或您的实际集线器代码而不是示例代码。查看控制台输出,看看是否有任何异常。
标签: c# asp.net-core signalr asp.net-core-signalr