Информация об изменениях

Сообщение [1C] не понятный Exception от 21.01.2017 9:14

Изменено 21.01.2017 9:52 AndrewVK

[1C] не понятный Exception
Приведу в начале простой код
        static void Main(string[] args)
        {
            ShowProducts();
            Console.ReadKey();
        }// тут если остановить отладчик - приложение не падает

        private static void ShowProducts()
        {
            string file = @"С:\1с\BD\testBD";
            dynamic result;
            V82.COMConnector com1s = new V82.COMConnector();

            com1s.PoolCapacity = 10;
            com1s.PoolTimeout = 60;
            com1s.MaxConnections = 2;
            result = com1s.Connect("File='" + file + "';");
            dynamic select = result.Справочники.Номенклатура.Выбрать();
            while (select.Следующий())
            {
                Console.WriteLine("{0} {1}", select.Артикул, select.Наименование);
            }
            Marshal.ReleaseComObject(select);
            Marshal.ReleaseComObject(result);
            Marshal.ReleaseComObject(com1s);
        }

Он выводит список товаров без каких либо ошибок! Но когда приложение завершается, возникает странное исключение. Оно именно возникает когда CLR освобождает ресурсы, потому что из под отладчика выполнение приложение без ошибок происходит до последней фигурной скобочки метода Main!

С виду все COM освобождаются... Подскажите что не так делаю?
[1C] не понятный Exception
Приведу в начале простой код
        static void Main(string[] args)
        {
            ShowProducts();
            Console.ReadKey();
        }// тут если остановить отладчик - приложение не падает

        private static void ShowProducts()
        {
            string file = @"С:\1с\BD\testBD";
            dynamic result;
            V82.COMConnector com1s = new V82.COMConnector();

            com1s.PoolCapacity = 10;
            com1s.PoolTimeout = 60;
            com1s.MaxConnections = 2;
            result = com1s.Connect("File='" + file + "';");
            dynamic select = result.Справочники.Номенклатура.Выбрать();
            while (select.Следующий())
            {
                Console.WriteLine("{0} {1}", select.Артикул, select.Наименование);
            }
            Marshal.ReleaseComObject(select);
            Marshal.ReleaseComObject(result);
            Marshal.ReleaseComObject(com1s);
        }

Он выводит список товаров без каких либо ошибок! Но когда приложение завершается, возникает странное исключение. Оно именно возникает когда CLR освобождает ресурсы, потому что из под отладчика выполнение приложение без ошибок происходит до последней фигурной скобочки метода Main!

С виду все COM освобождаются... Подскажите что не так делаю?
com interop