已经超过了max_user_connection_resource(当前值:10)。

问题描述 投票:0回答:1

我已经创建了.netcore应用程序,并使用依赖注入注入dbcontext来使用。我知道这个类型的错误是因为一些dbcontext没有被销毁,并且达到了最大的db连接数。我是否需要手动处理已经使用的dbcontext。我看到当使用依赖注入时,我们不需要手动销毁它们,它们会自动销毁。

另一个问题是,我已经使用SingnalR和使用Hub.Context来获取当前用户的详细信息为例。

var name = Context.User.Identity.Name; 

我所创造的背景是

MainDbContext _bdcontext = new MainDbContext();

并使用DP注入_dbcontext。

我需要知道这个Hub.context和_bdcontext是一样的,我需要手动销毁Hub.context还是手动销毁这些Hub.context。

我的第三个问题是,如果用户关闭浏览器或网络连接中断,分配的dbcontext是否会被销毁?

我的第四个问题是,有没有任何工具或任何方式来检查未销毁的dbcontext连接。

我已经分享我的ChatHub文件,我不能找到为什么这个错误的显示

https:/drive.google.comopen?id=172AScIz0h4kbol6W8hPyoebq9jocfzH2。

c# entity-framework .net-core signalr
1个回答
0
投票

如果没有一个完整的,最小的,非常容易的例子,很难判断你做错了什么。然而我有一个关于这个问题的规则:

"永远不要把创建和处理一个可处理资源的过程分开来 创造。使用。处置。所有这些都在同一段代码中进行,最好是使用一个 使用声明."

有一些罕见的例外,但我严重怀疑你是否有这些情况。特别是不要为了性能原因而拆分--如果有的话,那些类会有一些内部连接池。另外速度优化还为时过早,如果你的代码还不能用的话。

© www.soinside.com 2019 - 2024. All rights reserved.