2009-08-03 35 views
0

我一直在努力.Net Windows服務,我想知道如何實現從服務內發送錯誤的電子郵件。 我自with了一個想法,即在一個catch塊內發送電子郵件,但後來我想起發送電子郵件時可能會出錯,並且會拋出未處理的異常。 你們有沒有在做過這樣的事情?如果是這樣,你採取了什麼樣的路徑?錯誤實現電子郵件

感謝所有幫助

+2

您可以處理catch塊中的異常,電子郵件部分不必拋出未處理的異常。 – 2009-08-03 15:49:48

回答

2

查找到log4net的(它可以做電子郵件,文件日誌,數據庫日誌),看看是否能爲您提供你在找什麼。這是我想到的第一件事。

1

將發送登錄的電子郵件放在global.asax和Application_Error方法中。您可以通過使用Server.GetLastError()獲取最新的異常。

所以,我認爲你可以發送電子郵件,然後重新拋出異常,或拋出一個新的異常作爲內部異常。

1

我不推薦使用電子郵件方式。如果可能的話,我建議將它直接放入你的bug追蹤數據庫。你還需要記錄你在登錄時遇到的異常,並對它們做一些事情(希望它不會緩解到你沒有選擇的地方)。

我在過去所做的:
...記錄到錯誤跟蹤數據庫。
...登錄到事件日誌。
...登錄到網絡共享。
...登錄到本地磁盤。

編輯:我應該說明爲什麼我不推薦電子郵件。主要原因是錯誤應該發送到數據庫,如果您錯誤地實施了「發送錯誤電子郵件」,您的電子郵件將成爲未來某些時候您可能不再需要的例外情況。即使您創建了一個指向適當郵箱的通用電子郵件,您仍然最終會避免您應該做的第一件事 - 將其記錄到您的錯誤跟蹤數據庫中。