gpt4 book ai didi

c++ - 在服务启动期间调用 CoCreateInstance

转载 作者:搜寻专家 更新时间:2023-10-31 00:47:51 28 4
gpt4 key购买 nike

我有一个 Windows 服务,它在初始化期间调用多个 COM+。在某些系统上,此 Windows 服务会在启动期间导致死锁。

At least one service or driver failed during system startup

在服务启动期间调用 CoCreateInstance 的问题在于它可能需要其他服务才能启动。并且SCM在等待当前服务进入运行状态时,不允许其他服务启动。解决方法是确保在安装服务时正确配置服务依赖项。参见 http://support.microsoft.com/kb/258943

但是在 Windows Vista/2008/7 上运行时应该指定哪些服务依赖项?

最佳答案

另一种解决方案是在服务启动逻辑期间根本不初始化 COM 对象。让启动逻辑创建一个单独的工作线程,或者至少创建一个对自身的延迟/排队请求,这样 COM 初始化就可以在 SCM 被释放以根据需要启动其他服务后完成。

关于c++ - 在服务启动期间调用 CoCreateInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3398105/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com