2011-09-28 60 views
-1

我有一個每10分鐘運行一次的Windows服務。每當DLL發生錯誤時,該服務不會引發錯誤。我該如何製作它,以便將錯誤傳播回Windows服務並使其生成事件查看器消息,或者甚至再次啓動輪詢?Windows服務不會從DLL中捕獲錯誤

 catch (Exception ex) 
     { 
      var errorMessage = ex.Message; 
      if (ex.InnerException != null) 
       errorMessage += " " + ex.InnerException.Message; 

      eventLog1.WriteEntry(errorMessage, EventLogEntryType.Error); 
      new Logging().LogMessageToFile(errorMessage, true); 
     } 
+0

你怎麼知道DLL有錯誤?怎麼了?如果你問如何試着用你的服務來抓住它,那麼知道這一點非常重要。 – djdanlib

+0

我將它寫入EventLog和日誌文件。錯誤在那裏......在我寫入日誌文件之後嘗試拋出它無濟於事。 –

+1

仍然困惑......如果你正在捕捉一個異常並寫入一個EventLog,那麼這聽起來像你的目標已經完成。不要忘記,您必須刷新事件查看器以查看新事件。你想做什麼?你需要做這樣的事嗎? catch(Exception ex){/ * todo logging here */throw ex;/*重新拋出異常* /} – djdanlib

回答

0

問題解決!在捕捉之後再次拋出。

catch (Exception ex) 
    { 
     var errorMessage = ex.Message; 
     if (ex.InnerException != null) 
      errorMessage += " " + ex.InnerException.Message; 

     eventLog1.WriteEntry(errorMessage, EventLogEntryType.Error); 
     new Logging().LogMessageToFile(errorMessage, true); 

     throw; 
    }