2011-09-27 55 views
-1

我想創建一個簡單的服務,它會定期下載電子郵件地址列表並向他們發送電子郵件。C#:Windows自動郵件服務不起作用

我開始編寫服務,在此之前,我測試過,如果電子郵件發送的作品 - 是的,它的確如此。

問題是,雖然通過簡單地使用Main()中的郵件發送方法發送電子郵件時沒有超時,但當我嘗試在執行代碼作爲服務時執行相同的操作時,我得到超時和異常(使用InstallUtil.exe,然後去我的電腦/管理和啓動服務)

我想它必須是一些權限/特權問題,但完全沒有想法,如何解決它 - 我試圖打開防火牆關閉不起作用。當我在onStart(),onStop()方法或服務啓動的線程中調用郵件方法時,我無法「連接到遠程服務器」。我嘗試過使用不同的端口和SMTP服務器,但它們都是一樣的 - 只要我在非服務程序中運行代碼,它就會工作。我嘗試了不同的服務設置 - LocalSystem,NetworkService itp - 都一樣。

對Windows註冊表的任何更改也是如此 - 我可以在Main()正在執行時甚至在服務安裝程序中執行讀/寫操作 - 但是當服務要使用它時它不起作用。

請幫忙!

回答

1

服務運行在不同的帳戶下。 (通常服務)

您需要確保您的代碼解決這個問題。當您以交互模式運行時,您正在使用當前的憑據運行。

您是否記錄了日誌文件的所有例外情況?由於服務沒有用戶界面,因此您需要將任何錯誤記錄到日誌文件或事件日誌中。

相關問題