In meiner Seite besteht aus einem Repeater und binden Sie einige Daten mithilfe der Store -Prozedur von SQL Server 2008.
rptTour.DataSource = GetData();
rptTour.DataBind();
Datenbindung getData ()
SqlCommand cmdSelectAllMatch = new SqlCommand("sp_sel_Tour", Global.conn);
SqlDataReader dtrSelectAllMatch = null;
Collection<TourBO> TourData = new Collection<TourBO>();
try
{
Global.connD2W.Open(); //error here, line 23
cmdSelectAllMatch.CommandType = System.Data.CommandType.StoredProcedure;
dtrSelectAllMatch = cmdSelectAllMatch.ExecuteReader();
while (dtrSelectAllMatch.Read())
{
TourBO Tour = new TourBO();
TourID = Convert.ToInt16(dtrSelectAllMatch[dtrSelectAllMatch.GetOrdinal("ID")]);
Tour.Name = dtrSelectAllMatch[dtrSelectAllMatch.GetOrdinal("Name")].ToString();
TourData.Add(Tour);
}
}
catch(Exception ex)
{
Global.Log(ex.ToString());
}
finally
{
Global.connD2W.Close();
}
if (dtrSelectAllMatch != null)
{
dtrSelectAllMatch.Close();
}
return TourData;
Dies ist die SQLConnection, die unter der gesamten Anwendung teilnehmen wird.
public static SqlConnection connD2W = new SqlConnection(ConfigurationManager.ConnectionStrings["D2WConnectionString"].ConnectionString);
Es wurde gerade alle Daten von Data Reader durchlesen und eine benutzerdefinierte Sammlung zugewiesen und an den Repeater zurückgibt.
Alles funktioniert gut, wenn ich alleine teste. Wenn ich den verlorenen Test jedoch mit Visual Studio (20 Benutzer und 2 Minuten lang ausführte) ausführe, habe ich in meiner Fehlerprotokolldatei unten Fehler erhalten (gleiche Fehler halten Wiederholung).
Log Entry : 9:59:05 AM Thursday, November 07, 2013
:System.InvalidOperationException: The connection was not closed. The connection's current state is connecting.
at System.Data.ProviderBase.DbConnectionBusy.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at TourDAL.GetAllScheduledMatch() in c:\Documents\Visual Studio 2010\WebSites\test\App_Code\DAL\TourDAL.cs:line 23
Bedeutet dies, dass diese Funktion mehreren Benutzern nicht gleichzeitig zugänglich gemacht hat? Wie kann man dies lösen?