|
|
||
.NET 4.x COM потеря контекста. rpc_e_disconnected29.08.2017, 09:41. Показов 4121. Ответов 15
Метки нет (Все метки)
Текст ошибки стандартный
try-catch на такое пофиг, оно просто не валится в блоке а тупо стопит дебаг. Потеря происходит так: - открыто 2 документа в приложении. Одно поверх другого. Развёрнуты. - есть метод, при смене активного окна (типа OnActiveWindowChange) отрабатывается код. - одно окно закрываем, соответственно видим то, которое было "под". Но согласно API, в этом случае не происходит смены активности окна, второе просто отображается и всё. И вот в этот-то момент и ловится disconnected на попытке "взять модель окна" (API). Вообще, если раз 5 нажать продолжить то код всё же просирается и идёт дальше. Но спустя ещё пары таких дисконектов весь COM сервер тупо валится без всего.Добавлено через 2 минуты Гугл подсказывает что можно ваще отключить в дебаге показ такого. Типа есть - и фиг с ним. Не видим и ладно. Но это как-то чота не по-людски. Что странно, до вчерашнего дня я такое ловил только когда реально косячил и в совершенно другом месте. А тут такое. Погуглив ещё, увидел пару ссылок что это может быть аж ошибка винды и микрософты предлагали чуть ли не обнову-патч поставить. В таком случае - это уже ни в какие ворота
0
|
||
| 29.08.2017, 09:41 | |
|
Ответы с готовыми решениями:
15
Потеря контекста
Привязка контекста к {} |
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
|
| 29.08.2017, 11:00 | |
|
skilllab, о чём речь? Какой COM сервис использовался? Из всего описанного вообще не очевидно.
0
|
|
|
|
||
| 29.08.2017, 11:51 [ТС] | ||
|
Usaga, вы о чём?
![]() Выше прям в 5 строке вопрос. Остальное - описание происходящего. Добавлено через 2 минуты ![]() Сервис производства Dassaul Systemes и её дочернего предприятия Solidworks. А вот тут в ремарке прям описано то что я и написал выше http://help.solidworks.com/201... ndler.html
0
|
||
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
|||
| 29.08.2017, 11:56 | |||
|
Я с продукцией этой фирмы не сталкивался. МОжет быть всё дело в этом:
0
|
|||
|
|
|||
| 29.08.2017, 12:32 [ТС] | |||
|
То, которое было под закрытым. Но судя, блин, по дебагу, COM сервер во время закрытия перебирает ВСЕ окна. И получается что на данном методе (ссылка выше) в какой то момент времени я пытаюсь взять типа как модель закрывающегося окна. Точней COM сервер отдаёт модель закрывающегося окна. Как и писал выше, если пару тройку раз жмакнуть "продолжить", я всё же прихожу к окну, которое было под закрывающимся и код отрабатывает и продолжается.
Написать ещё раз вопрос? )))
Добавлено через 1 минуту
0
|
|||
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
|||
| 29.08.2017, 12:37 | |||
|
Не по теме:
Вообще, это конкретная особенность именно данного COM-сервера, так что тут общих рекомендаций дать сложно. Добавлено через 56 секунд Может в API есть метод для подписки на событие закрытия окна?
0
|
|||
|
|
|||
| 29.08.2017, 12:42 [ТС] | |||
|
Добавлено через 1 минуту Usaga, дался вам этот сервер. На конкретный вопрос есть что посоветовать?
0
|
|||
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
|||
| 29.08.2017, 12:47 | |||
|
0
|
|||
|
|
||||
| 29.08.2017, 13:03 [ТС] | ||||
|
Добавлено через 2 минуты
0
|
||||
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
||
| 29.08.2017, 13:41 | ||
|
0
|
||
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
|||
| 29.08.2017, 14:36 | |||
|
Перехват исключений отключается только в отладчике VS. Само приложение спокойно будет перехватывать исключения. Это просто механизм для удобной отладки. Хватает исключения в месте возникновения, до того, как за него возьмётся само приложение и позволяет исследовать контекст ошибки. Он по-умолчанию включен, ибо в 90% он удобен. Если вам это мешает, то можно и вырубить, но на само разрабатываемое приложение это эффекта не окажет. Добавлено через 2 минуты Я это к тому, что ваше приложение корректно "поймает" исключение, если работа с COM идёт в блоке try\catch. Другое дело, что причину нужно искать на форумах Solidworks (или аналогичных, специализированных), ибо она уже лежит вне студии, C# и COM. Добавлено через 14 минут skilllab, если вы всё ещё не поняли, то я прямо ответил вам на ваш вопрос: б) Такое поведение отладчика можно отключить; в) Приложение запущенное вне студии будет перехватывать исключение, ибо оно - самое обычное (System.Runtime.InteropServices.COMExcep tion, унаследовано от System.Exception);
0
|
|||
|
|
|
| 29.08.2017, 18:44 [ТС] | |
|
0
|
|
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
|||||||
| 30.08.2017, 01:44 | |||||||
|
Эксперимент произведён с 2GIS. На видео курсор отображается не там, где он был при записи (наркомания какая-то, видимо из-за наличия второго монитора ultra wide формата). Код: Кликните здесь для просмотра всего текста
0
|
|||||||
|
|
|
| 30.08.2017, 06:45 [ТС] | |
|
Usaga, ну так а мне то что делать? Переставить винду, студию и COM сервер?
Или тупо заигнорить свой баг и кодить дальше? Добавлено через 1 минуту И вопрос всётаки остался. Я виноват или кто-то другой?
0
|
|
|
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,409
|
||
| 30.08.2017, 06:57 | ||
|
Проверьте работу своего приложения вне отладчика студии. Убедитесь, что ошибка отлавливается уверенно и приложение не падает. Если всё нормально и возможно корректно работать дальше, то возьмите этот момент на заметку (в виде TODO), что нужно исправить, и забудьте навсегда. Так же, можете завести отдельный мини-проектик, чисто для воспроизведения проблемы и на нём поэкпериментировать. Но пример, что я в видео выложил показывает, что далеко не всё от вашего кода зависит... Добавлено через 4 минуты Я немного пошарился по жалобам пользователей в сети на ошибки при работе с SolidWorks через COM. Судя по всему, подобное (и иные ошибки) встречается часто и по разным причинам: то модель в документе где-то некорректное значение имеет, то ещё чего-то в ней не так. Если сможете сделать минималистичный проект воспроизводящий проблему, то с этим кодом можно будет обратиться на какой-нибудь забугорный форум solidworks или даже в техподдержку.
1
|
||
| 30.08.2017, 06:57 | |
|
Помогаю со студенческими работами здесь
16
Lifetime контекста
Цена контекста в Японии Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит предопределенное значение перечислений.
Процедура. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|