Neapstrādāts izņēmums: System.InvalidOperationException: taimauts ir beidzies. Taimauts ir beidzies, bet savienojums vēl nav noņemts no baseina. Tas var būt tāpēc, ka tiek izmantoti visi pūla savienojumi un ir sasniegts maksimālais pūla lielums.
Tas var notikt, jo tiek izmantoti visi pūla savienojumi un ir sasniegts maksimālais pūla lielums.
Šķīdums:
Pirmā lieta, kas jādara, ir aizvērt savienojumu, tiklīdz mēs to izmantojam. Ja savienojums nav slēgts, savienojums tiek saglabāts savienojuma pūlā, un ir zināms, ka GC ir iznīcināts. Šajā gadījumā jūs domājat, ka savienojuma baseins nav sasniedzis maksimālo vērtību, bet patiesībā savienojuma baseins ir sasniedzis maksimālo vērtību, otrkārt, savienojuma virknē mēs varam izmantot maksimālo baseina lielumu = N; , lai dinamiski paplašinātu maksimālo savienojumu skaitu savienojumu pūlā.
Ilustrētu:
Tas ir, ja maksimālā baseina lieluma vērtība nav norādīta connectionString,Tad maksimālais baseina lielums = 100Ja datu bāzes apmeklētāju skaits ir 101, iepriekš minētā kļūda parādīsies, ja pēc SqlConnection.ConnectionTimeout iestatītā laika gaidīšanas joprojām nav pieejams savienojums (noklusējums ir 15 sekundes).
Kad mēs iestatījām:
Ja apmeklētāju skaits, kas vienlaikus izveido savienojumu ar datu bāzi, ir 513, iepriekš minētā kļūda radīsies, ja pēc SqlConnection.ConnectionTimeout iestatītā laika gaidīšanas joprojām nav pieejams savienojums (noklusējums ir 15 sekundes).
|