C# · 12月 29, 2021

c# – 如何以编程方式知道消息队列是否在机器上启用?

我知道当我尝试创建新的MessageQueue时,如果没有启用消息队列,系统会抛出InvalidOperationException异常.

但是如何在程序上知道消息队列是否在机器上启用?
我正在使用C#2.0& C#4.0在两个不同的代码库.

解决方法 您可以使用System.ServiceProcess来执行此操作,但首先需要添加对项目Service.ServiceProcess的引用,您可以检索所有服务并获取其状态: List<ServiceController> services = ServiceController.GetServices().ToList();ServiceController msQue = services.Find(o => o.ServiceName == “MSMQ”);if (msQue != null) { if (msQue.Status == ServiceControllerStatus.Running) { // It is running. }} else { // Not installed? }