我有一個aspnetcore webservice,它會相繼執行幾個請求。我在不同的時間得到例外。錯誤消息是:MySql異常同時執行多個請求
MySql.Data.MySqlClient.MySqlException:錯誤連接:超時過期。在從池中獲取連接之前已超時。發生這種情況的原因可能是因爲所有連接池都在使用中,並且達到最大池大小。
在MySql.Data.MySqlClient.MySqlPool.GetConnection()
在MySql.Data.MySqlClient.MySqlConnection.Open()
在bdtFood.Controllers.FoodController.Get(的Int32 ID,的Int32 idMeeting )
在lambda_method(封閉,對象,對象[])
在Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__28.MoveNext()
我該如何解決這個例外。同時不應該有一個以上的請求。
編輯:請求的代碼。
while (cn.State == System.Data.ConnectionState.Open)
{
}
cn.Close();
cn.Open();
Modells.Room room = new Modells.Room(-2, "dummy");
MySqlCommand myCommand = new MySqlCommand("SELECT * FROM room WHERE idRoom = @idRoom", cn);
myCommand.Parameters.Add("@idRoom", MySqlDbType.Int32, 11).Value = idRoom;
using (reader = myCommand.ExecuteReader())
{
while (reader.Read())
{
room = new Modells.Room(reader.GetInt32(0), reader[1].ToString());
}
}
你在處理你的連接和命令嗎? – mjwills
我爲每一個請求使用一個新的連接和一個新的命令。這可能是問題嗎?我認爲這不會是問題,因爲我一次只使用一個。 – tatatoto
不可能在沒有看到你的代碼的情況下給你任何其他更具體的建議。 – mjwills