我已经创建了一个Windows服务来在服务启动时发送邮件。当我调试服务并通过代码运行服务时,服务可以正常发送邮件。但是,我安装后,该服务无法正常工作。我安装服务后不发送任何邮件。安装后Windows服务未运行
任何人都可以请建议我的解决方案?
我已经创建了一个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();
}
然后你会看到哪里出了问题。
您也可以通过上述方法在代码中添加一些信息,看看哪些代码部分没有问题
如果您只想将字符串保存到文件中,您可以使用“File.WriteAllText”。 (http://msdn.microsoft.com/en-us/library/ms143375.aspx) – Tamir
在你Main()
方法的工作,只是ServiceBase.Run(ServicesToRun);
前添加以下行:
#if DEBUG
while(!Debugger.IsAttached)
{
Thread.Sleep(1000);
}
#endif
然后安装您的服务并启动它。 启动时,将调试器附加到您的服务进程(Debug Menu => Attach to process),您应该可以调试它。
不要忘记在启动服务之前设置断点。
非常感谢。 –