2017-07-10 23 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

回答