繁体   English   中英

Windows Service在安装后未运行

[英]Windows Service not running after installing

我创建了Windows服务,以便在服务启动时发送邮件。 该服务工作正常,就像我调试服务并通过代码运行它时发送邮件一样。 但是我安装它后该服务无法正常工作。 我安装该服务后没有发送任何邮件。

谁能建议我解决方案?

当作为服务帐户运行时,服务极有可能缺少执行一项或多项操作的权限。

检查Windows事件日志中是否有任何相关的错误消息。 作为测试,您可以将服务配置为以登录时使用的同一用户身份运行(只是确保问题是基于权限的,因此不要将该配置保持活动状态,因为这是一个重大的安全漏洞)。

调试服务有点困难。 使用try..catch块以每种方法将消息写入文件; 例如

try
{
    ..
}
catch(Exception ex)
{
    SaveMessage(ex.ToString());
}

保存消息的方法是:

static void SaveMessage(string s)
{
    StreamWriter sw = new StreamWriter(@"C:\service_exceptions_file.txt", true);
    sw.WriteLine(s);
    sw.Close();
}        

然后,您将看到问题出在哪里。

您也可以通过上述方法在代码中添加一些消息,以查看代码的哪些部分正常工作

在您的Main()方法中,只需在ServiceBase.Run(ServicesToRun);之前添加以下行ServiceBase.Run(ServicesToRun);

#if DEBUG
            while(!Debugger.IsAttached)
            {
                Thread.Sleep(1000);
            }
#endif

然后安装您的服务并启动它。 启动时,将调试器附加到服务的进程(Debug Menu => Attach to process),您应该可以对其进行调试。

启动服务之前,请不要忘记设置断点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM