asp.net-core - ASP.NET Core 3.1,InvalidOperationException 在使用注入到作用域服务中的用户管理器时,然后注入到 SignalR 集线器
问题描述
我有一个服务 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?
解决方案
推荐阅读
- c++ - 该库无法在 Qt 中链接
- c# - 使用 C# 获取 RabbitMQ 服务器上所有已声明交换的列表
- c# - 如果我超过 Google SMTP 发送限制,我的 C# 代码会发生什么
- python - 使用 Python Flask 时 Localhost:5000 继续加载
- shopify - 循环浏览特定集合中的产品
- javascript - 正则表达式电子邮件验证:@ 之后我想要最多 2 个点和 1 个破折号
- ios - 崩溃:iOS 13 中的基金会 NSClassFromString+200
- python - 如何减少大量文件的python os.listdir的内存使用量
- arm - rockchipRV1107 需要哪种 JTAG/SWD 编程器-调试器?
- wordpress - 如何在elementor的帖子小部件中包含自定义字段值