У меня есть приложение .NetCore.Моя база данных - Mongo и размещена в Mongo Atlas.Я достигаю максимального количества соединений очень легко.У меня много запросов к БД, но мое соединение с БД - Singletone.
Я подключаюсь к Mongo через Mongo Client
MongoClient client = new MongoClient(config.GetConnectionString("Dbconnectionstring"));
IMongoDatabase database = client.GetDatabase("database");
Все это в классе, который зарегистрирован как синглетон в Startup.cs
services.AddSingleton<MongoUnitOfWork>();
У меня раньше не было этой проблемы.В этом текущем приложении я должен сделать много запросов к БД, но если я зарегистрировал соединение, как одноразовый, я ожидал использовать то же соединение и не открывать новое для каждого запроса.По крайней мере, это то, что, как мне кажется, происходит.
ОБНОВЛЕНИЕ
Я использовал рекуррентный сервис с именем HangFire (предназначенный для использования для повторяющихся заданий), который нуждался в строке соединения дляБД.Несмотря на то, что я не включал функцию автоматического вызова каждые 1 минуту или что-то подобное, я думаю, что это была проблема.На данный момент я прокомментировал каждую вещь об этом сервисе, и все вернулось к норме.
Я вернусь, как только я на 100% уверен, что это была проблема.
ОБНОВЛЕНИЕ 2
Сегодня у меня снова возникла проблема, поэтому я решил, что рекуррентная служба не проблема.
ОБНОВЛЕНИЕ 3
В прошлый раз, когда я избавился от этой услуги, я также удалил все соединения.До сих пор у меня не было другой проблемы, и когда я проверял их в тот день, когда я удалил службу, все казалось нормально.Сегодня я снова проверил соединения, и у меня было около 70. Очевидно, что соединения не закрываются.
Кроме того, да, я уверен, что я использую синглтон для создания экземпляров MongoClient.Я также ставлю точки останова, чтобы посмотреть, будут ли они получены по запросу.Не запросы являются проблемой.