Salut à tous
J'ai un gros problème sur une appli en ASP.NET 2
J'ai des connexions qui restent ouvertes sur mon serveur SQL Server 2005
Ce qui est gênant c'est qu'après 3 minutes de navigations sur le site, j'ai plus de connexion autorisée par le serveur SQL (nommé "berlin" (séparé du serveur web lui même nommé "Kyoto"))
Je regarde dans le moniteur d'activité de berlin, je voit une 50aine de connexions encores ouvertes en provenance de kyoto, c'est de là que j'en ai conclu que mes connexions ne se fermaient pas
Voilà le code asp.net exécuté
en sachant que l'objet "con" est une instance de la classe connexionBDD, dont la fonction membre ouvrirBDD crée un objet SqlConnection sur ma base de données, l'ouvre et le renvoit ouvert, et où PortailMnodeBDD() n'est ni plus ni moins qu'un string contenant le nom d'une base de données (j'espère avoir été clair sur cette dernière partie ^^)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 SqlConnection ACSDB = con.ouvrirBDD(); string SQL = "SELECT PAYS_ID\n" + "FROM REF_LANGUE_PAYS\n" + "WHERE LANGUE_ID = " + langue.ToString() + "\n"; SqlCommand SQL_Commande = new SqlCommand(SQL, ACSDB); SqlDataReader SQL_Resultat = SQL_Commande.ExecuteReader(); string drapeau = "FR"; if (SQL_Resultat.Read()) drapeau = (string)SQL_Resultat["PAYS_ID"]; SQL_Resultat.Close(); img_drapeau.Src = "../../../Portail/Images/drapeaux/mini" + drapeau + ".jpg"; con.fermerBDD();
Je désespère, parce que hier, tout allais bien (à part une dixaine de datareaders que j'avais oublié de fermer et du coup le problème était le même mais je savait pourquoi ^^) et depuis environ 1h c'est la cata sans raison apparente
J'ai controlé les requettes exécutées "blocantes" sur berlin (par le moniteur d'activité) et aucune ne provient d'un data reader que j'aurai oublié de fermer. De plus, j'ai pris pour habitude de mettre "con.fermerBDD()" dans mon Page_Unload() (je sais c'est pas super propre comme méthode, mais au moins j'oublie plus de la fermer (ma connexion hein, pas autre chose ^^))
Je découvre asp.net (enfin depuis 2 mois maintenant, mais je suis pas encore calé) et les joies du c# (avant je travaillais en ASP VB caca pas bien car trop permissif et ne plante pas quand la logique voudrait que si)
Enfin bref... si quelqu'un a une idée, je suis preneur
Partager