У нас есть сервер Windows 2003 с установленными продуктами Cebos MQ1 (версия 7 и версия GRI), которые работают уже много лет. После установки Распространяемый пакет Microsoft 2010 C ++ необходимая для другой разработки, служба MQ1 GRI теперь не запускается.
Журналы событий показали, что два дополнительных обновления (.NET4 и 2010 C ++ Redistributable SP2) также были установлены распространяемым пакетом. Как только мы обнаружили, что служба MQ1 не запускается должным образом, мы удалили эти три установленных пакета. Однако служба по-прежнему не запускается; в появившемся диалоговом окне говорится: «Служба запущена, затем остановлена. '.
Журналы событий, когда мы пытаемся запустить службу, ничего не показывают; IE: никаких ошибок, сбоев, сбоев или другой информации, связанной с этой службой. Выполнение MQ1Serv.exe напрямую указывает на проблему 'Отсутствует операция командной строки, необходимо указать установку, удаление и аббревиатуру компании.. ' sc query MQ1Service(GRI)
показывает чистый выход для Win32ExitCode из 0x0
. Попытка переустановить клиентское или серверное программное обеспечение дает ошибку 'Точка входа в процедуру ReInitializeCriticalSection не может находиться в библиотеке динамической компоновки KERNEL32.dll. ' на этапе «Регистрация библиотек».
На данный момент дальнейшие исследования показали, что необходимая функция находится в URL.dll и проверяет, не повреждена ли библиотека. Запуск sfc /scannow
на сервере заменено несколько DLLS; включая URL.DLL для версий с 2005 года. Это фактически нарушило работу других приложений, которые требовали переустановки (одним из них был IE 7). После переустановки и обновлений версия url.dll - 7.0.5730.13 (2009), а Kernel32.dll - версия 5.2.3790.4480 (2009). Служба MQ1 GRI по-прежнему не запускается, что указывает на ту же ошибку, что и предыдущая «Служба запущена, затем остановлена». При запуске дизассемблера на Kernel32.dll и Url.dll не отображаются названные функции ReinitializeCriticalSection
.
Попытка переустановки клиента и сервера MQ1, а также повторный запуск службы снова терпят неудачу. Однако установка режима совместимости на клиенте MQ1 install exe на «Windows 95» фактически приводит к установке программы. Установка режима совместимости для службы сервера MQ1 не позволяет ей запускаться.
Я изучаю эту проблему почти неделю и, кроме советов по сканированию и замене url.dll, не пришел к успешным выводам. Эта служба работала до установки C ++ 2010 без каких-либо дополнительных параметров или настроек. После удаления установки C ++ и всех пакетов обновления / обновлений, которые она установила в автоматическом режиме, проблема с запуском службы MQ1 GRI все еще не решается.
Q: Кто-нибудь еще сталкивался с этой или подобной проблемой при попытке инициализировать службу? Что я упустил из виду или что еще я могу попробовать, чтобы запустить эту службу?
Несмотря на то, что при переустановке возникали ошибки, связанные с «ReInitializeCriticalSection», эта ошибка из-за того, что служба не запускалась, не имела ничего общего с Kernel32.dll. Неправильная конфигурация в MQ1ServerSettings.ini (атрибут rootpath) была перезаписана. Исправление местоположения по этому пути и переустановка MQ1Service позволили ему успешно запуститься, как ожидалось.