В моей странице состоит из ретранслятора и связать некоторые данные с использованием процедуры сохранения с SQL Server 2008.Подключение не было закрыто ошибка для тестирования нагрузки Visual Studio
rptTour.DataSource = GetData();
rptTour.DataBind();
данных связывания 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;
Это соединение, которое будет общим для всего приложения.
public static SqlConnection connD2W = new SqlConnection(ConfigurationManager.ConnectionStrings["D2WConnectionString"].ConnectionString);
Он просто считывает все данные из устройства чтения данных и присваивает их в пользовательскую коллекцию и передает обратно на ретранслятор.
Все работает нормально, когда я проверяю сам. Но когда я бегу Затерянный тест с помощью Visual Studio (20 пользователей и работать в течение 2-х минут), я получил ниже ошибки в моем журнале ошибок файл (та же ошибка сохранить повтор)
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
ли это означает, что эта функция не допускается несколько пользователей для доступа к нему в одно и то же время? Любой способ решить эту проблему?
Как вы определяете 'Global.connD2W'? Если вы используете какое-то глобальное соединение, это, вероятно, не сработает. – Szymon
@Szymon У меня есть обновление части подключения, любезно совет. – My2ndLovE
@ Шимон, вы правы. Ошибки исходят из глобального соединения. Итак, я в конечном итоге объявляю индивидуальное соединение для каждой функции. – My2ndLovE