Разрыв 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 - спасибо! проблема была в подчиненных объектах!
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.