C #: служба автоматической почты Windows не работает - PullRequest
0 голосов
/ 27 сентября 2011

Я хотел создать простой сервис, который бы периодически загружал список адресов электронной почты и отправлял им электронные письма.

Я начал писать сервис, и до этого я проверял, работает ли отправка электронной почты - и да, это так.

Проблема в том, что, хотя я не получаю тайм-ауты при отправке электронной почты, просто используя метод рассылки в Main (), я получаю тайм-ауты и исключения, когда я пытаюсь сделать то же самое при выполнении кода в качестве службы ( с помощью InstallUtil.exe, затем перейдите в раздел «Мой компьютер» / «Управление и запуск службы»)

Полагаю, это проблема с разрешениями / привилегиями, но я понятия не имею, как ее решить - я пытался отключить брандмауэры безрезультатно. Когда я вызываю почтовый метод в методах onStart (), onStop () или в потоке, который запускает служба, я не могу «подключиться к удаленному серверу». Я пытался использовать разные порты и SMTP-серверы, но все одинаково - работает, пока я запускаю код в не обслуживающей программе. Я пробовал разные настройки сервиса - LocalSystem, NetworkService и.т.п. - все одинаково.

То же самое касается любых изменений в реестре Windows - я могу выполнять чтение / запись во время выполнения Main () или даже в установщике службы - но он не работает, когда служба хочет его использовать.

Пожалуйста, помогите!

1 Ответ

1 голос
/ 27 сентября 2011

Службы работают под другой учетной записью.(Обычно СЕРВИС)

Вы должны убедиться, что ваш код учитывает это.Когда вы работаете в интерактивном режиме, вы работаете с текущими учетными данными.

Записываете ли вы все исключения в файл журнала?Поскольку у службы нет пользовательского интерфейса, вам нужно будет записывать любые ошибки либо в файл журнала, либо в журнал событий.

...