Показать сообщение отдельно
Старый 27.10.2006, 14:47   #6
smoln
Пользователи
 
Регистрация: 19.08.2006
Сообщений: 61
По умолчанию

Цитата:
0. Включи трассировку
1. V8.ReleaseComObject используй не в отношении коннекшена, а в отношении объектов, создаваемых/вызываемых при помощи этого коннекшена
2. connection.Close() оставь только в finally
3. Попробуй вложить всё в конструкцию using
4. Коннекшн всё равно может продолжать болтаться в пуле и ты его будешь видеть в консоли сервера предприятия до тех пор, пока не истечет таймаут. Для проверки можешь попробовать очистить пул соединений
Написал такой код все равно не обрывает

using(V8DbConnection connection = new V8DbConnection(V8Metadata.GetDatabase(ibAlias)))
{
connection.User = (string)Application["WebAdmin"];
connection.Password = (string)Application["WebAdminPsw"];
SetFocus("pwd");

connection.Open();
try
{
DropDownList1.Items.Clear();
object Priemwiki = (object)_1C.V8.Data.V8.Call(connection,connection. Connection, "ФильтрацияПользователей");
decimal CountP = (decimal)_1C.V8.Data.V8.Call(connection, (ComObject)Priemwiki, "Количество", new object[] { });
for (int j = 0; j < CountP; j++)
{
string UserName = (string)_1C.V8.Data.V8.Call(connection, (ComObject)Priemwiki, "Получить", new object[] { j });
DropDownList1.Items.Add(new ListItem(UserName ));

}
V8.ReleaseComObject(Priemwiki);

}
catch (Exception err1)
{

connection.Close();

}
finally
{
V8.TraceComObject.Start();
if (V8.TraceComObject.Count >0)
{
// что здесь делать?
}
V8.TraceComObject.Stop();

connection.Close();

V8.ReleaseComObject(connection);
}
}
smoln вне форума   Ответить с цитированием