コード例 #1
0
        public List <ManageServicesView> ServiceDetails(ManageServicesView Post)
        {
            //ServiceController[] scServices;
            //scServices = ServiceController.GetServices();
            List <ManageServicesView> Result = new List <ManageServicesView>();

            //Get configured services
            serviceView.ServicesList = ConfigurationManager.AppSettings["Services"].Split(',');
            ServiceController service = new ServiceController();

            // Get the services details which are configured
            foreach (var item in serviceView.ServicesList)
            {
                try
                {
                    ManageServicesView PullData = new ManageServicesView();

                    //Get service details
                    service.ServiceName    = item;
                    PullData.ServiceStatus = service.Status.ToString();
                    PullData.DisplayName   = service.DisplayName;
                    PullData.ServiceName   = service.ServiceName;

                    if (service.MachineName == ".")
                    {
                        PullData.ServiceUser = "******";
                    }

                    var scObj = new ManagementObject(new ManagementPath(string.Format("Win32_Service.Name='{0}'", service.ServiceName)));
                    if (scObj["Description"] != null)
                    {
                        PullData.Description = scObj["Description"].ToString();
                    }
                    else
                    {
                        PullData.Description = null;
                    }

                    //Adding service details to Result list
                    Result.Add(PullData);
                }
                catch (Exception ex)
                {
                    writeLogs(service.ServiceName, ex.Message, DateTime.Now);
                }
            }     //Ends foreach loop

            //return result list


            return(Result);
        }
コード例 #2
0
        public ManageServicesView ServiceControls(ManageServicesView Post)
        {
            ManageServicesView serviceView = new ManageServicesView();

            sc = new ServiceController(Post.ServiceName);

            if (Post.ServiceStatus == "Running")
            {
                try
                {
                    if (sc.Status == ServiceControllerStatus.Running)
                    {
                        TimeSpan timeout = TimeSpan.FromMilliseconds(5000);
                        sc.Stop();
                        sc.WaitForStatus(ServiceControllerStatus.Stopped, timeout);

                        serviceView.ServiceName   = Post.ServiceName;
                        serviceView.ServiceStatus = Post.ServiceStatus;
                        serviceView.ServiceUser   = Post.ServiceUser;

                        writeLogs(serviceView.ServiceName, "Stopped successfully", DateTime.Now);
                    }
                }
                catch (SystemException ex)
                {
                    writeLogs(Post.ServiceName, ex.Message, DateTime.Now);
                }
            }
            else if (Post.ServiceStatus == "Stopped")
            {
                try .
                    {
                        //sc = new ServiceController(Post.ServiceName);
                        if (sc.Status != ServiceControllerStatus.Running)
                        {
                            TimeSpan timeout = TimeSpan.FromMilliseconds(5000);
                            sc.Start();
                            sc.WaitForStatus(ServiceControllerStatus.Running, timeout);
                            serviceView.ServiceName   = Post.ServiceName;
                            serviceView.ServiceStatus = Post.ServiceStatus;
                            serviceView.ServiceUser   = Post.ServiceUser;

                            writeLogs(serviceView.ServiceName, "Started successfully", DateTime.Now);
                        }
                    }
                catch (SystemException ex)
                {
                    writeLogs(sc.ServiceName, ex.Message, DateTime.Now);
                }
            }
            else if (Post.ServiceStatus == "Restart")
            {
                try
                {
                    //if services running then stop and start service(Restart)
                    if (sc.Status == ServiceControllerStatus.Running)
                    {
                        TimeSpan timeout = TimeSpan.FromMilliseconds(5000);
                        sc.Stop();
                        sc.WaitForStatus(ServiceControllerStatus.Stopped, timeout);

                        sc.Start();
                        sc.WaitForStatus(ServiceControllerStatus.Running, timeout);
                    }
                    else if (sc.Status != ServiceControllerStatus.Running)
                    {
                        //if services stopped then start service(Restart)
                        TimeSpan timeout = TimeSpan.FromMilliseconds(5000);
                        sc.Start();
                        sc.WaitForStatus(ServiceControllerStatus.Running, timeout);
                    }

                    writeLogs(serviceView.ServiceName, "Restarted successfully", DateTime.Now);
                }
                catch (Exception ex)
                {
                    writeLogs(sc.ServiceName, ex.Message, DateTime.Now);
                }
            }

            return(serviceView);
        }