2017-05-24 23 views
0

Ich beobachte folgende Fehler beim Verbinden von SQL Server aus C# -Anwendung, wann immer Anwendungspool recycelt wird. Ich habe überprüft, wenn diese Fehler erhalten, es war nur 20 Verbindung in der Datenbank geöffnet trotz der tatsächlichen Grenze ist 200 (das ich in web.config festgelegt).SQL Server: Maximale Poolgröße wurde erreicht

Außerdem sind die Verbindungen in Code richtig geschlossen, so dass dies kein Problem wäre. Bitte beachten Sie, dass es nicht jedes Mal vorkommt, wenn der Pool recycelt wird, sondern während eines Tages, an dem wir Verkehr auf unserem System haben.

System.InvalidOperationException: Zeitlimit abgelaufen. Die Zeitüberschreitungsperiode ist abgelaufen, bevor eine Verbindung vom Pool erhalten wurde. Möglicherweise ist aufgetreten, weil alle gepoolten Verbindungen verwendet wurden und die maximale Poolgröße erreicht wurde. bei System.Data.ProviderBase.DbConnectionFactory.TryGetConnection (DbConnection owningConnection, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions Useroptions) bei System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection (DbConnection outerConnection, DbConnectionFactory connection, TaskCompletionSource Retry) bei System.Data.SqlClient.SqlConnection.TryOpen (TaskCompletionSource`1 retry) bei System.Data.SqlClient.SqlConnection.Open() bei System.Data.SqlClient.SqlConnection.Open()

Antwort

0

Versuchen Sie folgendes:

SqlConnection cn = new SqlConnection(strCn); 
    try 
    { 
     using (SqlCommand cmd = new SqlCommand("select * from xxxx", cn)) 
     { 
      cn.Open(); 

      //do something 

      cn.Close(); 
     } 
    } 
    catch (Exception exception) 
    { 
     cn.Close(); 
     throw exception; 
    } 
+0

Danke, dunklem Holz, aber ich schon erwähnt, dass Verbindungen im Code richtig geschlossen. Ich habe es endlich geschlossen. –

+0

Das ist in Ordnung, aber ich lieber die Verbindung sofort nach dem erfolgreichen Abschluss der Operation oder vor der Veröffentlichung von Fehlern zu schließen. Vielen Dank – darkwood

Verwandte Themen