需求:想通过C#代码来查看IIS服务或者MSMQ是否已经安装
分析:IIS服务和MSMQ安装完成后都会创建windows服务,所以我们只需要查看对应的服务是否存在即可。
准备工作:
IIS服务名称:World Wide Web Publishing Service
MSMQ服务名称:Message Queuing
代码实现:
1.创建一个类,用于检测服务是否存在:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 //添加引用 6 using System.ServiceProcess; 7 8 namespace ChangeName 9 { 10 public class ServiceCheck 11 { 12 /// <summary> 13 /// 监测特定名称的服务是否存在 14 /// </summary> 15 /// <param name="serviceName">要检测的服务名称</param> 16 /// <returns>存在true,不存在false</returns> 17 public bool CheckService(string serviceName) 18 { 19 bool bCheck = false; 20 21 //获取windows服务列表 22 ServiceController[] serviceList = ServiceController.GetServices(); 23 24 //循环查找该名称的服务 25 for (int i = 0; i < serviceList.Length; i++) 26 { 27 if (serviceList[i].DisplayName.ToString() == serviceName) 28 { 29 bCheck = true; 30 break; 31 } 32 } 33 return bCheck; 34 } 35 } 36 }
2.利用ConsoleApplication,进行验证。
1 public static void Main(String[] args) 2 { 3 //实例化监测服务类 4 ServiceCheck serviceCheck = new ServiceCheck(); 5 6 #region IIS监测 7 8 bool bIIS = serviceCheck.CheckService("World Wide Web Publishing Service"); 9 Console.WriteLine("IIS服务器是否已安装: " + (bIIS ? "是" : "否")); 10 11 #endregion 12 13 #region MSMQ监测 14 15 bool bMSMQ = serviceCheck.CheckService("Message Queuing"); 16 Console.WriteLine("MSMQ服务是否已安装:" + (bMSMQ ? "是" : "否")); 17 18 #endregion 19 20 Console.ReadKey(); 21 22 }
运行结果: