ASP.NET API Postgresql TimeoutException NpgsqlConnector GetPooledConnector
У нас есть ASP.net API, использующий postgres, обычно все работает нормально, но время от времени у нас есть это исключение:
Exception information: Exception type: TimeoutException Exception message: Dns hostname lookup timeout. Increase Timeout value in ConnectionString. at Npgsql.NpgsqlConnector.RawOpen(Int32 timeout) at Npgsql.NpgsqlConnector.Open() at Npgsql.NpgsqlConnectorPool.GetPooledConnector(NpgsqlConnection Connection) at Npgsql.NpgsqlConnectorPool.RequestConnector(NpgsqlConnection connection) at Npgsql.NpgsqlConnection.Open()
Сначала я подумал, что это может быть связано с пулом соединений, поэтому добавил код для проверки открытых и закрытых соединений (у нас MAXPOOL установлен на 100).
Для каждого веб-приложения, запрашивающего API-интерфейс, я обнаружил, что 2 соединения остаются открытыми, но никакие запросы не связаны, если я перерабатываю пул приложений, проблема исчезает при сбросе соединений.
¿Любые идеи о том, как я могу идентифицировать утечки связи?