2011-03-26 18 views
12

से कनेक्शन प्राप्त करने से पहले मैं त्रुटि मिली:समय समाप्ति की अवधि बीत पूल

error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

यह आता है जब भी मैं एक लंबे समय के ब्राउज़र में प्रतिक्रिया की प्रतीक्षा करने के बाद आईआईएस बंद करो। अगर मैं प्रतीक्षा करने की कोशिश कर रहा हूं तो मुझे त्रुटि मिली है कि An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll लेकिन मुझे मिली त्रुटि जो बहुत पुरानी है। मैं सिर्फ एक नया आदेश लिखता हूं जिसे कोई अपवाद नहीं मिला है। [मुझे लगता है कि पहली रन त्रुटि को पहले त्रुटि मिली है, इसलिए सभी नई त्रुटि कभी अपवाद नहीं दे सकती]।

तो मुझे इस मुद्दे को हल करने के लिए क्या करना है।

उत्तर

27

त्रुटि का मतलब है कि कनेक्शन पूल कनेक्शन से बाहर है। सामान्य कारण एक कनेक्शन बंद करने के लिए आप इसे उपयोग करने के बाद भूल जाता है, जैसे:

var con = new MySqlConnection("Server=YourDB;Database=YourDb;..."); 
con.Open(); 
var com = con.CreateCommand(); 
com.CommandText = "select * from YourTable"; 

इस कोड को कनेक्शन बंद करने के लिए भूल जाता है, तो पूल एक कम कनेक्शन है। आप इसे जोड़कर इसे ठीक कर सकते हैं:

con.Close(); 

अंत में। लेकिन अगर क्वेरी अपवाद फेंकता है, तो Close छोड़ा जाएगा, और आप अभी भी 1 कनेक्शन नीचे हैं।

using (var con = new MySqlConnection("Server=YourDB;Database=YourDb;...")) 
{ 
    con.Open(); 
    var com = con.CreateCommand(); 
    com.CommandText = "select * from YourTable"; 
} 

आप tring, की तरह अपने कनेक्शन के अंत में max pool size जोड़कर आसानी से इस समस्या का निवारण कर सकते हैं::

Server=YourDB;Database=YourDbUid=YourUser;Pwd=YourPwd;max pool size=1; 

यह आपको एक पूल देता

एक बहुत बेहतर तरीका using बयान है 1 का आकार, अगर आप अपने एक कनेक्शन को मुक्त करना भूल जाते हैं तो तुरंत एक त्रुटि स्थिति ट्रिगर करें।

+5

+1 डिबगिंग उद्देश्यों के लिए पूल आकार को 1 सेट करने के बारे में महान सुझाव। उससे मुझे बहुत सहायता मिली। – LeopardSkinPillBoxHat

+0

thx man यह मेरा प्रश्न भी है –

+0

क्या वर्तमान पूल आकार प्राप्त करना संभव होगा? – Protocole

संबंधित मुद्दे