我有一个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