2012-12-19 18 views
0

J'ai l'erreur suivante dans mon application.La taille maximale du pool de connexion a atteint

« Délai d'attente expiré. Le délai écoulé avant d'obtenir une connexion de la piscine. Cela peut se produire parce que toutes les connexions mises en commun étaient en cours d'utilisation et la taille de la piscine max a été atteint. »

Sans aucune idée, j'ai juste changé la compilation debug = "true" en compilation debug = "false" dans web.config.

problème a soudainement disparu. existe-t-il un lien entre le débogage de la compilation et la taille du pool?

+1

La chose est quand vous changez quelque chose dans web.config et de l'enregistrer, le pool d'applications est recyclé et il remet à zéro l'ensemble de l'application. J'irais chercher toutes les connexions db, les lecteurs et m'assurerais qu'ils soient tous fermés en cas de succès ou d'exception. –

Répondre

2

Cela ressemble à un problème de fuite de connexion. Il est important de toujours fermer/éliminer les connexions après utilisation. Sinon, ils ne sont pas retournés au pool de connexions (ou renvoyés trop lentement).

Marque shure vous avez toujours l'aide d'instructions avec des connexions telles que:

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    SqlCommand command = connection.CreateCommand(); 

    command.CommandText = "mysp_GetValue"; 
    command.CommandType = CommandType.StoredProcedure; 

    connection.Open(); 
    object ret = command.ExecuteScalar(); 
} 

More information here

Questions connexes