安装Windows服务后无法运行

本文关键字:运行 Windows 服务 安装 | 更新日期: 2023-09-27 18:17:54

我创建了一个windows服务,当服务启动时发送邮件。当我调试服务并通过代码运行它时,服务工作得很好,就像它发送邮件一样。但服务不工作后,我安装它。我安装了服务后,它没有发送任何邮件。

有谁能给我一个解决方案吗?

安装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),你应该能够调试它。

不要忘记在启动服务之前设置断点