View Full Version : برطرف کردن پیغام TimeOut برای وصل شدن به بانک
IranVisual
یک شنبه 22 دی 1387, 13:38 عصر
وقتی برنامه طول میکشه که بیاد بالا پیغام TimeOut میده چجوری میشه این پیغام رو برطرف کرد
علیرضا مداح
دوشنبه 23 دی 1387, 19:33 عصر
سلام دوست عزیز،
لطفا" Exception را به طور دقیق ذکر نمایید، اما اگر با خطای ذیل مواجه می شوید:
System.InvalidOperationException: 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.
بدین معناست که تعداد کانشکن های برقرار شده با دیتابیس که بسته نشده اند، از حد مجاز گذشته و Connection Pool پر شده است،
به طور کلی همیشه هنگام کار با شیء SqlConnection یکی از روش های زیر را برگزینید:
1)استفاده از کلیدواژه using:
using (SqlConnection sqlConn = new SqlConnection(”Data Source=DotNetPC;Initial Catalog=DppcDB;Integrated Security=True”))
{
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlConn;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = “select * from Management.Logs”;
sqlCmd.ExecuteNonQuery();
} // It ensures that connection will close & dispose
2)فراخوانی متدهای Close و Dispose مربوط به شیء SqlConnection در بلوک finally مربوط به بلوک try--catch-finally:
SqlConnection sqlConn = new SqlConnection(”Data Source=DotNetPC;Initial Catalog=DppcDB;Integrated Security=True”);
try
{
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlConn;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = “select * from Management.Logs”;
sqlCmd.ExecuteNonQuery();
}
catch (Exception)
{
//Do Something
}
finally
{
//’finally’ block is ALWAYS get called.
sqlConn.Close();
sqlConn.Dispose();
}
جهت اطلاعات بیشتر:
http://dotnetweblog.wordpress.com/2008/01/19/max-pool-size-reached/ (http://dotnetweblog.wordpress.com/2008/01/19/max-pool-size-reached/)
پس بنابراین باید همیشه از بسته شدن کانشکن برقرار شده با دیتابیس اطمینان حاصل نمایید ،/
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.