我有一個使用mysql作爲數據庫的ASP.NET網站。我注意到當我顯示完整的進程列表時,有很多連接「正在休眠」。今天我們遇到了一些錯誤:「從池中獲取連接之前已經超時了。」如果進程「睡眠」,那麼它們是否仍然從代碼打開?代碼中的所有MySQL連接均使用語句。我可以依靠使用聲明來正確關閉連接嗎?我可以依靠using語句來關閉我的MySQL連接嗎?
編輯代碼: 我使用這個類來創建我的連接:
public class DbAccess
{
public static MySqlConnection OpenConnection(string connectionStringName)
{
string connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
if (string.IsNullOrEmpty(connectionString))
{
throw new ArgumentException("Connection string " + connectionStringName + " does not exist.");
}
MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();
return connection;
}
}
然後我打電話這樣說:
using (MySqlConnection connection = DbAccess.OpenConnection(connectionString))
{
//Code Here
}
一些額外的信息:重置MySQL並沒有使錯誤消失,但重置我的應用程序池確實..
你可以顯示數據庫訪問的實際代碼嗎? – sukru 2011-04-12 14:59:36
[在C#中使用MySQLConnection無法正常關閉。](http://stackoverflow.com/questions/5567097/using-mysqlconnection-in-c-does-not-close-properly) – 2011-04-12 15:06:47