Имя: Пароль:
1C
1С v8
Разрыв com соединения
0 artprog
 
02.05.12
11:41
Добрый день.
Подниму избитую всеми тему.

Подключаюсь к 1сине из шарпа через Com-connector:

V82.COMConnector com1s = new V82.COMConnector();
connection = com1s.Connect("File='" + file + "';Usr='" + usr + "';pwd='" + pas + "';");

По окончании работы обнуляю соединение и закрываю приложение:
Connection = null;

Пробовал даже принудительно вызывать сборку мусора
GC.Collect();
GC.WaitForPendingFinalizers();

В 7ре, win2008 - все отлично, а в xp соединение не разрывается.

Что можно предпринять?
1 Serginio1
 
02.05.12
11:45
Marshal.ReleaseComObject
2 Serginio1
 
02.05.12
11:48
Marshal.FinalReleaseComObject
3 artprog
 
02.05.12
12:02
(1,2) К сожалению не помогло
4 Serginio1
 
02.05.12
12:05
(3) Такое бывает если куча подчиненных объектов не зарелизена. Попробуй и на них вызвать FinalReleaseComObject и посмотреть что он возвращает.
5 artprog
 
02.05.12
12:13
(4) Вызываю FinalReleaseComObject сразу после подключения к базе. Возвращает 0. Повторно использовать этот объект соединения уже не могу. Соединение в 1с, в списке активных пользователей все равно висит. При закрытии в 7ре - ошибок не возникает, а в XP вываливается память не может быть read
6 Serginio1
 
02.05.12
12:13
Или выполняй код в отдельном домене. По окончании выгружай его
7 artprog
 
02.05.12
12:36
Serginio1 - спасибо! проблема была в подчиненных объектах!