Разорвать соединение COMConector

162
29 октября 2019, 04:50

Приложение на WPF в котором соединяюсь с 1с(RunApp) после работы вызываю закрытие соединения(ExitApp) все работает коректно соединение закрывается но если делаю все это в консольном приложении то соединение остается висеть.

Код ниже находится в одном файле, WPF и консольно приложение обрашаются к этому файлу, одновременно работает чтото одно либо консольно приложение либо приложение на WPF

private static dynamic _App;
    public static dynamic App
    {
        get
        {
            if (check_linq(_App)) 
            ;
            else
            RunApp();
            return _App;
        }
        set
        {
            _App = value;
        }
    }

//соединение с 1С
public static void RunApp()
    {
        Cls = Type.GetTypeFromProgID("V83.COMConnector");//, "server-1c83.oss.local");
        if (Cls == null) return;
        dynamic V82 = Activator.CreateInstance(Cls);
        object[] arguments = { ConnectionString };
        try
        {
            App = Cls.InvokeMember("Connect",
                                                      BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static,
                                                      null, V82, arguments);
        }
    }
public static void ExitApp()
    {
        //Разрываем соединение с 1С
        if (App == null) return;
        System.Runtime.InteropServices.Marshal.ReleaseComObject(App);   
        GC.Collect();                                                   
        GC.WaitForPendingFinalizers();                                  
    }
Answer 1

Все нашел самостоятельно в запросе консоли сохранялась лишняя сссылка на обьект App которая не уничтожалась, помогло вывести тот запрос в отдельную функцию запрос типа

 var Res = App.Интеграция.ПолучитьСуммы(DateTime.Today);

Marshal.ReleaseComObject(Res) и Res = null не помогало

READ ALSO
Дочерняя форма на месте родительской(с#)

Дочерняя форма на месте родительской(с#)

Создаю форму,но дочерняя появляется в другой стороне экрана, а хотелось бы на месте родительской

203
Не обновляется ObservableCollection

Не обновляется ObservableCollection

Не нашел ни одного похожего вопроса, кроме тех где изменения не происходят при добавление элементаА у меня проблема заключается в том что...

180
Получить сгенерированную страницу

Получить сгенерированную страницу

Нужно получить сгенерированную страницу с JS (https://wwwrusprofile

178