[英]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.