-1

我想创建一个简单的服务,它会定期下载电子邮件地址列表并向他们发送电子邮件。

我开始编写服务,在此之前我测试了电子邮件发送是否有效——是的,它确实有效。

问题是,虽然我通过简单地使用 Main() 中的邮件方法发​​送电子邮件时没有超时,但当我尝试在将代码作为服务执行时(使用 InstallUtil. exe,然后转到我的电脑/管理并启动服务)

我想它必须是一些权限/特权问题,但完全不知道如何解决它 - 我试图关闭防火墙但没有任何效果。当我在 onStart()、onStop() 方法或服务启动的线程中调用邮件方法时 - 我无法“连接到远程服务器”。我尝试使用不同的端口和 SMTP 服务器,但都是一样的——只要我在非服务程序中运行代码,它就可以工作。我尝试了不同的服务设置——LocalSystem、NetworkService itp——都一样。

对 Windows 注册表的任何更改也是如此——我可以在执行 Main() 时甚至在服务安装程序中进行读/写——但当服务想要使用它时它不起作用。

请帮忙!

4

1 回答 1

1

服务在不同的帐户下运行。(通常是服务)

您需要确保您的代码说明了这一点。当您在交互模式下运行时,您正在使用当前凭据运行。

您是否将所有异常记录到日志文件中?由于服务没有用户界面,因此您需要将任何错误记录到日志文件或事件日志中。

于 2011-09-27T11:29:53.830 回答