2017-07-10 24 views
0

我有一个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()); 
      } 
     } 
+0

你在处理你的连接和命令吗? – mjwills

+0

我为每一个请求使用一个新的连接和一个新的命令。这可能是问题吗?我认为这不会是问题,因为我一次只使用一个。 – tatatoto

+0

不可能在没有看到你的代码的情况下给你任何其他更具体的建议。 – mjwills

回答