1

我是 Windows 服务的新手,我遇到了一个问题,我需要在启动方法上调用我的服务上的一个函数,但它不起作用。当我启动服务时,出现以下错误

“本地计算机上的 MIM 服务启动然后停止。如果某些服务没有被其他服务或程序使用,它们会自动停止”

我当前的代码如下

public CHK()
{
    InitializeComponent();
}

protected override void OnStart(string[] args)
{
    Logger.Message("ChkUser", "Service Start", "");
    CheckUser();
}

protected override void OnStop()
{
    Logger.Message("MChkUser", "Service Stop", "");
}
public void CheckUser()
{
   //actions
}

如果我没有调用 CheckUser() 方法,那么服务可以正常工作。这背后的原因是什么???

4

1 回答 1

3

最有可能的原因是您的CheckUser()方法引发了未捕获的异常......

要查看异常是什么,请尝试简单地将对该方法的调用放在 try-catch 块中:

protected override void OnStart(string[] args)
{
    Logger.Message("ChkUser", "Service Start", "");
    try {
    CheckUser();
    } catch (Exception e) { 
      Logger.Message("ChkUser", e.Message, "");
    }
}
于 2013-07-27T20:41:31.617 回答