我有一个服务 WhoKnows<THub> 在 Startup.cs 中注册为
services.AddScoped<IWhoKnows<GameHub>, WhoKnows<GameHub>>();
该服务通过 UserManager 注入,如下所示:
public WhoKnows(UserManager<GameManagerUser> userManager) {
_userManager = userManager
}
然后在一个方法中调用它:
public async Task SendUser(string UserId) {
PlayFoundryGameManagerUser user = await _userManager.FindByIdAsync(UserId);
await _hubContext.Clients.Group(TeamId).SendAsync("showUser", user );
}
然后将服务作为依赖项注入 SignalR Hub
public GameHub(UserManager<GameManagerUser> userManager,
IWhoKnows<GameHub> whoKnows)
{
_userManager = userManager;
_whoKnows = whoKnows;
}
但是,当 _userManager.FindByIdAsync(UserId) 被调用时,它会抛出一个
System.InvalidOperationException:无效操作。连接已关闭。
我想这与 UserManager 的作用域生命周期有关?
如何使用 Injected UserManager?