我们有一个安装了已经运行多年的Cebos MQ1(版本7和版本GRI)的Windows 2003服务器。 安装其他开发所需的Microsoft 2010 C ++可再发行组件包之后 ,MQ1 GRI服务现在无法启动。
事件日志显示另外两个更新(.NET4和2010 C ++ Redistributable SP2)也由可再发行组件安装。 只要我们发现MQ1服务没有正常启动,我们就删除了这三个安装的软件包。 但是服务仍然不启动; popup对话框状态“服务启动然后停止。 ”。
当我们尝试启动服务时事件日志什么也没有显示; IE:没有与此服务相关的错误,崩溃,失败或其他信息。 执行MQ1Serv.exe直接指定“ 缺less命令行操作,必须指定安装,卸载和公司缩写”的问题 。 sc query MQ1Service(GRI)显示sc query MQ1Service(GRI)的干净退出。 试图重新安装客户端或服务器软件给出的错误“ 过程入口点ReInitializeCriticalSection不能位于dynamic链接库KERNEL32.dll 。 在“注册图书馆”阶段。
在这一点上,进一步的研究表明,所需的function是在URL.dll中,并validation库没有损坏。 在服务器上运行sfc /scannow取代了几个DLLS; 包括从2005年的URL.DLL版本。这实际上打破了其他需要重新安装的应用程序(其中之一是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客户端上的兼容模式设置为“Windows 95”安装程序实际上是安装程序。 在MQ1服务器服务上设置兼容性模式不会使其启动。
我一直在研究这个问题近一个星期,除了build议扫描和replaceurl.dll,都没有得出任何成功的结论。 此服务在2010年C ++安装之前运行,没有任何其他参数或设置。 在删除C ++安装和所有安装的服务包/更新之后,仍然无法解决MQ1 GRI服务未启动的问题。
问 :在尝试获得服务初始化时是否有其他人遇到这个或类似的问题? 我忽略了什么,或者我还可以尝试什么才能获得此服务?
即使重新安装被抛出与'ReInitializeCriticalSection'相关的错误,服务未启动的这个错误与Kernel32.dll没有任何关系。 MQ1ServerSettings.ini(rootpath属性)中的错误configuration被覆盖。 将位置更正为此path并重新安装MQ1Service,使其能够按预期成功启动。