title: ExecuteReader requires an open and available Connection. The connection's current state is Connecting
body: <p>When attempting to connect to MSSQL database via ASP.NET online, I will get the following when two or more people connect simultaneously:</p>
  
  <blockquote>
    <p>ExecuteReader requires an open and available Connection. The connection's current state is Connecting.</p>
  </blockquote>
  
  <p>The site works fine on my localhost server.</p>
  
  <p>This is the rough code.</p>
  
  <pre><code>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;
  }
  </code></pre>
  
  <p>May I know what might have gone wrong and how do I fix it?</p>
  
  <p>Edit: Not to forget, my connection string and connection are both in static. I believe this is the reason. Please advise.</p>
  
  <pre><code>public static string conString = ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
  public static SqlConnection conn = null;
  </code></pre>