|
Разрыв 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 - спасибо! проблема была в подчиненных объектах!
|
|