C# 活动连接数已达到最大Mongo Atlas

C# 活动连接数已达到最大Mongo Atlas,c#,asp.net,mongodb,asp.net-core,C#,Asp.net,Mongodb,Asp.net Core,我有一个.NetCore应用程序。我的数据库是Mongo,托管在Mongo Atlas上。我很容易达到最大连接数。我向db提出了很多请求,但我与db的连接是单音的 我通过Mongo客户端连接到Mongo MongoClient client = new MongoClient(config.GetConnectionString("Dbconnectionstring")); IMongoDatabase database = client.GetDatabase("database");

我有一个.NetCore应用程序。我的数据库是Mongo,托管在Mongo Atlas上。我很容易达到最大连接数。我向db提出了很多请求,但我与db的连接是单音的

我通过Mongo客户端连接到Mongo

MongoClient client = new MongoClient(config.GetConnectionString("Dbconnectionstring"));
IMongoDatabase database = client.GetDatabase("database");
所有这些都是在Startup.cs中注册为单音的类中完成的

services.AddSingleton<MongoUnitOfWork>();
services.AddSingleton();
我以前没有这个问题。在当前的应用程序中,我必须向db发出很多请求,但是如果我以singleton身份注册连接,我希望使用相同的连接,而不是为每个请求打开一个新的连接。至少我认为是这样的

更新

我使用了一个名为HangFire的经常性服务(用于经常性作业),它需要一个到数据库的连接字符串。即使我没有让任何函数每1分钟自动调用一次或类似的东西,我认为这就是问题所在。现在我对这项服务的每一件事都发表了评论,一切都恢复了正常

一旦我100%确定这就是问题所在,我会尽快回来

更新2

今天我又遇到了问题,所以我认为经常性服务不是问题所在

更新3

上次当我放弃那个服务时,我也删除了所有的连接。到目前为止,我没有其他问题,当我在删除服务的当天检查它们时,一切似乎都很好。今天我再次检查了连接,我大约有70个。显然,连接没有关闭


另外,是的,我确信我正在使用单例来实例化MongoClient。我还设置了断点,以查看它们是否在请求时被命中。问题不在于请求。

你确定你真的在创建单例吗?您确定您的应用程序只运行一次吗?请共享一小部分复制问题的代码示例。请注意,返回的
MongoClient
实例在每个应用程序生命周期中只需连接一次。如果您的代码正在调用同一个块,以便在每次调用时重新实例化该实例,那么您的代码做了错误的事情。但是任何提出这样一个问题的问题都需要可复制的代码。是的,我确信这是一个单例问题。我向您展示了我在Startup.cs中注册的内容。MongoUnitOfWork类是我实例化MongoClient的地方。