Я перевожу Foxpro в приложение ASP.NET MVC.
Почти 70% логики встроено в хранимые процедуры SqlServer. по этой причине мы используем некоторые процедуры для обновления некоторых таблиц (мы не отображаем SP, просто вызываем их, используя SqlConnection с SqlDataReader, SqlCommand, SqlAddapter).
Проблема в том, что многие соединения открываются при каждом вызове. Соединение закрыто для каждого звонка, даже этого. при запуске sp_who слишком много соединений открываются для одного и того же пользователя.
Каков текущий способ закрытия и удаления каждого соединения?
Можно ли найти активное соединение и использовать его повторно?
Последняя попытка была:
SqlConnection.ClearAllpools();
Но это не дает немедленного эффекта.
У нас есть соединение класса IDisposabel, которое выполняет соединения.
Это метод de close:
public void close()
{
SqlConnection.ClearAllPools();
//.ClearPool(BdTransCx);
// SqlConnection.ClearPool(BdArchCx);
if (ConectarArchivos)
{
if (BdArchCx.State == ConnectionState.Open)
{
BdArchCx.Close();
}
}
if (BdArchCx.State == ConnectionState.Open)
{
BdTransCx.Close();
}
}
Этот метод вызывается после каждого запроса.