Необработанное исключение
Модераторы: m0p3e, edward_K, Модераторы
Необработанное исключение
Еще одна проблема после обновлений. Выводим отчет в Exсel, пишет что возникло необработанное исключение EXOleBadCall (ExOle) Не найден метод "SetImplementationMode" объекта ......
Когда перешли на 8.1 год назад это все работало.
Где это искать подскажите пожалуйста?
Когда перешли на 8.1 год назад это все работало.
Где это искать подскажите пожалуйста?
Явно связано вот с этим:
http://www.tyumbit.ru/gal_forum/viewtop ... 5794#45794
http://www.tyumbit.ru/gal_forum/viewtop ... 5794#45794
Здравствуйте! У нас тоже возникла такая же проблема. Плюс ко всему после успешного компилирования наших отчетов, проверяем отчет(формируется верно), и после этого невозможно сменить никакие интерфейсы, выдаются сообщения о невозможности их загрузки. Атлантис 23й. Помогите плиз, у кото решилась эта проблема.
Ответа от разработчика пока нет.
Починил у себя так - В сообщении об ошибке указан SID регистрации {xxxxxxxxxxx-xxxx-xxx и т.д.}. regedit. Поиском находим SID в секции HKEY_CLASSES_ROOT. В разделе InProcServer32 default-параметр имеет значение <путь к библиотеке>. Соответственно он у меня был указан к боевой (не обновленной). Поменял на путь к новой и сообщение об ошибке исчезло.
Можно предположить, что проблема если в реестре указан путь к библиотеке не поддерживающей данную функцию и обновление боевой БД пройдет прозрачно.
Починил у себя так - В сообщении об ошибке указан SID регистрации {xxxxxxxxxxx-xxxx-xxx и т.д.}. regedit. Поиском находим SID в секции HKEY_CLASSES_ROOT. В разделе InProcServer32 default-параметр имеет значение <путь к библиотеке>. Соответственно он у меня был указан к боевой (не обновленной). Поменял на путь к новой и сообщение об ошибке исчезло.
Можно предположить, что проблема если в реестре указан путь к библиотеке не поддерживающей данную функцию и обновление боевой БД пройдет прозрачно.
Вот:
Код: Выделить всё
Это ActiveX EXE\GalXLSLib.dll
Возникает ошибка, когда на машине используется несколько каталогов EXE
Галактики, или вернее несколько GalXLSLib.dll.
Ошибка будет, если на машине зарегистрирован GalXLSLib.dll "старой версии".
В реестре текущий путь на GalXLSLib.dll находится:
HKEY_CLASSES_ROOT\CLSID\{08A59DB9-1CA9-4F38-A6CF-B1CE0FC302B9}\InprocServer32
В момент установки обновления, патч менеджер сам должен регистрить новые
версии ActiveX. Сбои регистрации обычно происходят:
- Если в момент установки обновления была открыта какае-то другая Галактика
- Если у пользователя Windows, нет прав на установку ActiveX (либо на
модификацию реестра)
- Если у пользователя нет каких-то прав на каталог EXE (не знаю каких).
Например если EXE находится на машине в другом домене - у меня не регистрит.
- Если обновление устанавливается не патч менеджером, а просто копированием,
тогда ActiveX конечно не зарегистрится (так было)
-*** Последнее время добавилась еще одна проблема. Сама Гал-ка при
возникновении каких-то событий (каких точно я так и не смог выяснить), сама
регистрит ActiveX-ы из своего каталога EXE. Т.е. поставили мы обновление в
"новую" Гал-ку. Патч менеджер их зарегистрил в каталог "новых" EXE. Зашли в
"старую" Гал-ку, а Гал-ка их в свой каталог зарегистрила.
Для "принудительной" регистрации всех ActiveX Галактики, служит
EXE\OCX\reg.bat, но там регистрация без вывода ошибок (ключ /s - лучше его
снять). Лучше запустить так:
cd EXE\OCX
Regsvr32 /u ..\GalXLSLib.dll - отмена старой регистрации с выводом сообщений
о выполнении
Regsvr32 ..\GalXLSLib.dll - регистрашия с выводом сообщений о выполнении
, тогда выведет сообщения. Перед запуском убедиться что все Гал-ки закрыты.
Но это просто чтоб все привести в порядок. Это не избавит от автоматической
перерегистрации самой Гал-кой. Поэтому лучше просто скопировать новый
GalXLSLib.dll во все EXE. Новый GalXLSLib.dll - совместим со старым.