При попытке подключиться к базе данных MSSQL через веб-сайт ASP.NET я получаю следующее, когда одновременно подключаются два или более человека:
ExecuteReader требует открытого и доступного соединения. Текущее состояние подключения - "Подключение".
Сайт отлично работает на моем локальном сервере.
Это грубый код.
public Promotion retrievePromotion()
{
int promotionID = 0;
string promotionTitle = "";
string promotionUrl = "";
Promotion promotion = null;
SqlOpenConnection();
SqlCommand sql = SqlCommandConnection();
sql.CommandText = "SELECT TOP 1 PromotionID, PromotionTitle, PromotionURL FROM Promotion";
SqlDataReader dr = sql.ExecuteReader();
while (dr.Read())
{
promotionID = DB2int(dr["PromotionID"]);
promotionTitle = DB2string(dr["PromotionTitle"]);
promotionUrl = DB2string(dr["PromotionURL"]);
promotion = new Promotion(promotionID, promotionTitle, promotionUrl);
}
dr.Dispose();
sql.Dispose();
CloseConnection();
return promotion;
}
Могу ли я узнать, что могло пойти не так, и как я могу это исправить?
Изменить: чтобы не забывать, моя строка подключения и соединение являются статическими. Я считаю, что это причина. Просьба сообщить.
public static string conString = ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
public static SqlConnection conn = null;