我们有一个64位应用程序作为Windows 7 64位上的服务运行。当我们手动启动服务时,它每次都能正常工作。当系统启动时自动启动服务时,有时(比如1/10)会失败。问题在于LoadLibrary函数实际上是它所做的第一件事。它是大部分代码所在的DLL的负载。我无法在计算机上重现它,所以我只是向国外的同事发送特殊的测试二进制文件。我使用无缓冲的写入操作将文本输出添加到文件,以便我可以确切地看到它消失的位置。没有崩溃转储,没有异常,没有返回NULL,它只是在LoadLibrary中的某处退出,系统启动后服务未运行。我们的库没有DllMain,但是如果我添加它,它不会到达那里(在失败情况下)。我尝试延迟加载依赖系统库,没有成功。看起来好像有时候某些东西还没有在Windows中启动,所以初始化失败了,我不确定。但在LoadLibrary之前添加睡眠并不能解决问题(睡得太晚?)。你有什么想法正在发生什么以及如何进行?我现在要逐步从我们的DLL中删除代码,逐个删除lib依赖关系,看看它是否会在某个时刻开始工作。我会很高兴在需要时提供更多信息。LoadLibrary在作为服务启动时有时会失败
0
A
回答
0
Lenovo RapidBoot Shield应用程序是原因。
“RapidBoot Shield通过延迟非关键应用程序和服务来帮助您的系统启动速度更快,但在某些情况下,RapidBoot Shield可能会延迟对系统启动至关重要的应用程序和/或服务,系统启动速度比预期慢,或者某些应用程序可能无法正常启动。“
相关问题
- 1. 为什么仅当从IDE启动EXE时LoadLibrary才会失败?
- 2. Windows服务在启动时失败
- 3. 作为debian服务启动jetty失败
- 4. windows服务启动失败
- 5. Windows服务启动失败
- 6. Docker服务启动失败
- 7. 服务器启动失败
- 8. Windows服务启动失败
- 9. 卸载Windows服务失败有时会强制重新启动机器
- 10. Windows上的Jenkins从服务器(代理程序)有时会在启动时发生socketAccept超时失败
- 11. yesod devel在启动开发服务器时失败
- 12. 在Linux中启动时,Tomcat服务器失败
- 13. LoadLibrary(“MSVCR90D.dll”)失败
- 14. 运行Loadrunner 12.53时LoadLibrary失败
- 15. VisualSVN服务器服务在安装或更新时启动失败
- 16. MSMQ支持的Windows服务中托管的WCF服务在启动时失败
- 17. 启动服务自动失败
- 18. 启动PHP5-FPM时失败
- 19. 启动时dev_appserver.py失败
- 20. 启动RoR服务器作为守护进程使File.read失败
- 21. Gem已安装,但导轨服务器启动时失败
- 22. 使用Java 8构建Web服务时启动失败
- 23. 监控:健康检查失败时重新启动服务器
- 24. 有时候从小部件启动活动失败有时
- 25. SQL Server服务不会自动启动(登录失败)
- 26. MongoDB不会作为服务启动
- 27. MongoDB不会作为服务启动?
- 28. Tomcat服务器V7.0启动失败
- 29. Java EE + Wildfly:启动服务失败jboss.persistenceunit
- 30. 泰坦服务器启动失败
服务在启动之前对其他服务具有依赖性是很正常的。在Windows,Control Panel + Administrative Services中有明确的配置,右键单击您的服务,Properties,Dependencies选项卡。 搞清楚你所需要的服务不能从问题中猜出来。但是,当然可以通过反复试验来发现。查看一下执行类似工作的其他服务的依赖关系。 –
是的,这可能是因为服务的顺序在变化,我们需要一些依赖项,这些依赖项在10个案例中的1个尚未开始。但后来我猜想,例如15秒睡眠(虽然当然不是一个好的解决方案)会有所帮助。但事实并非如此。如果我们不调用任何函数,就很难说需要哪个服务依赖项,只需加载我们的DLL库即可。我也可以改变行为静态加载它,也许它会告诉我们更多的服务日志或什么。 – Martin
在这里,您可以看到我们有问题的DLL的其他库依赖项,也许您会发现需要等待哪些服务正确加载它们:kernel32.lib; user32.lib; gdi32.lib; winspool.lib; shell32.lib ; ole32.lib; oleaut32.lib; UUID.LIB; comdlg32.lib; advapi32.lib; secur32.lib; WS2_32.LIB; libeay32.lib; icuin.lib; icuuc.lib; zlibstatic.lib – Martin