【发布时间】:2011-09-27 10:22:38
【问题描述】:
我想创建一个简单的服务,它会定期下载电子邮件地址列表并向他们发送电子邮件。
我开始编写服务,在此之前我测试了电子邮件发送是否有效 - 是的,确实有效。
问题是,虽然我通过简单地使用 Main() 中的邮件方法发送电子邮件时没有超时,但当我在将代码作为服务执行时尝试做同样的事情时,我得到了超时和异常(使用InstallUtil.exe,然后转到我的电脑/管理并启动服务)
我猜它必须是一些权限/特权问题,但完全不知道如何解决它 - 我试图关闭防火墙但没有任何效果。当我在 onStart()、onStop() 方法或服务启动的线程中调用邮件方法时 - 我无法“连接到远程服务器”。我尝试使用不同的端口和 SMTP 服务器,但都是一样的——只要我在非服务程序中运行代码,它就可以工作。我尝试了不同的服务设置——LocalSystem、NetworkService itp——都一样。
对 Windows 注册表进行任何更改也是如此 - 我可以在执行 Main() 时甚至在服务安装程序中进行读取/写入 - 但当服务想要使用它时它不起作用。
请帮忙!
【问题讨论】:
标签: c# windows service mailing