提示用户如果窗口服务已停止

时间:2014-03-19 11:15:07

标签: c# asp.net service window

我想在窗口服务停止时向用户发出通知。如何获取状态:在Code Behind(c#)中启动/停止?

3 个答案:

答案 0 :(得分:0)

您可以使用ServiceController组件连接并控制现有服务的行为。在创建ServiceController类的实例时,可以设置其属性,以便它与特定的Windows服务进行交互。然后,您可以使用该类来启动,停止和以其他方式操纵服务。请参阅here以查看如何添加它,并here进行详细工作。

答案 1 :(得分:0)

试试这个

using System.ServiceProcess;    
ServiceController sc = new ServiceController(SERVICENAME);    
if (sc.Status == ServiceControllerStatus.Stopped)
{
    // do anything
}

答案 2 :(得分:0)

首先,如果您使用的窗口服务已经包含了项目中System.ServiceProcess的引用。

要获得Windows服务状态,您需要做的就是按照以下步骤操作。

第1步:包含程序集

using System.ServiceProcess;

第2步:

创建您的服务

private ServiceController yourService = new ServiceController("yourService");

第3步:

if (yourService.Status == ServiceControllerStatus.Running)
        this.labelStatus.Text = "Running...";

else if (yourService.Status == ServiceControllerStatus.Stopped)
        this.labelStatus.Text = "Stopped.";

else if (yourService.Status == ServiceControllerStatus.StartPending)
        this.labelStatus.Text = "Starting...";

else if (yourService.Status == ServiceControllerStatus.StopPending)
        this.labelStatus.Text = "Stopping...";

else if (yourService.Status == ServiceControllerStatus.Paused || yourService.Status == ServiceControllerStatus.PausePending)
        this.labelStatus.Text = "Pause";
else
        this.labelStatus.Text = "Processing";

labelStatus只是一个标签,您要将Windows服务状态设置为向用户显示。

这是您可以轻松执行此操作并处理Windows服务的任何类型状态的方法。

在这些if else块中,您可以根据服务状态执行任何操作。您可以根据窗口服务的开始和停止状态显示图标的开启和关闭。