O SQL Server fornece uma maneira de monitorar conexões abertas em "SQL Server Management Studio". Gostaria de verificar se as conexões não estão sendo abertas e deixadas abertas no aplicativo. Porque a menos que o aplicativo feche explicitamente a conexão, é possível que ele permaneça aberto até que o Garbage Collector decida finalmente limpar o objeto e liberar a conexão de volta ao pool.
Outra maneira de verificar e ver se isso está acontecendo é esperar até que o aplicativo não consiga mais se conectar. Uma vez nesse estado, se a reinicialização do aplicativo resolver esse problema, provavelmente será um problema com o código do aplicativo.