c# - 依赖于 RabbitMQ 的 Topshelf 服务不会在重启时启动

标签 c# windows-services rabbitmq easynetq

我有一个使用 EasyNetQ 和 RabbitMQ 的 Windows 服务。 服务通常从服务控制管理器启动。 然而,我偶尔会看到在重新启动时,服务没有启动,服务事件日志中出现错误:

A timeout was reached (30000 milliseconds) 

The <serviceName> service failed to start due to the following error: 
The service did not respond to the start or control request in a timely fashion.

我试过自动延迟服务,但没有用。

此外,我正在考虑设置恢复机制,以便如果它没有启动,它会在第一次/第二次和后续故障时重新启动。不确定这是否有效。

所以我的问题是如何确定导致我的服务有时无法启动的依赖项是什么?

最佳答案

为了确定导致错误的依赖项,您可以尝试在 TopShelf“OnException”(https://topshelf.readthedocs.io/en/latest/configuration/config_api.html#onexception)上附加一个处理程序 并记录导致错误的异常。

关于c# - 依赖于 RabbitMQ 的 Topshelf 服务不会在重启时启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26347108/

相关文章:

c# - 多个线程可以同时向并发集合添加项目吗?

c# - 如何在 'System.Linq' 命名空间中查看静态类 Enumerable 的主体?

C# 需要对新约束进行解释 (new T(...))

c# - "Correct"与本地 Windows 服务通信的方式

c# - YouTube 直接上传 - OutOfMemory 异常

rabbitmq - 将值添加到 MassTransit.RabbitMq 中的 header

java - RabbitMQ 暂停队列消费

c# - MVC3 下拉列表为

jenkins - 如何禁用已安装的 jenkins 作为 Windows 服务并在 cmd 中运行相同的 jenkins?

java - 使用 spEL 的多队列 RabbitListener