安装Windows服务后无法运行
本文关键字:运行 Windows 服务 安装 | 更新日期: 2023-09-27 18:17:54
我创建了一个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);
之前添加以下行:
#if DEBUG
while(!Debugger.IsAttached)
{
Thread.Sleep(1000);
}
#endif
然后安装服务并启动它。当它启动时,将调试器附加到服务的进程(Debug Menu => attach to process),你应该能够调试它。
不要忘记在启动服务之前设置断点