在多个请求之后执行MySql异常

时间:2017-07-10 13:16:02

标签: c# mysql

我有一个aspnetcore webservice,可以相互执行多个请求。我在不同的时间得到一个例外。错误消息是:

  

MySql.Data.MySqlClient.MySqlException:连接错误:超时已过期。从池中获取连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。

     

at MySql.Data.MySqlClient.MySqlPool.GetConnection()

     

at MySql.Data.MySqlClient.MySqlConnection.Open()

     

at bdtFood.Controllers.FoodController.Get(Int32 id,Int32 idMeeting)

     

在lambda_method(Closure,Object,Object [])

     

at 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());
            }
        }

1 个答案:

答案 0 :(得分:0)

您需要在所有命令和控制器周围使用using

有关详细信息,请参阅https://stackoverflow.com/a/1808056/34092