2011-05-13 58 views
0

我有一個WCF服務作爲Windows服務託管。 在WCF服務代碼庫 - 錯誤處理代碼,我加入了類似下面以顯示EVENTVWR錯誤的詳細信息(信息+堆棧跟蹤):Windows服務安裝項目 - 包括調試符號

catch (Exception ex) 
    { 
     var logger = new EventLogExceptionLogger(); 
     logger.HandleException(ex); //Show exception Stack Trace in Event Viewer 
    } 

要允許堆棧跟蹤在事件查看器中顯示出來,我去服務設置項目和添加項目輸出以包含WCF服務庫調試符號。

現在,當我運行安裝程序時,服務正在成功安裝,安裝文件夾中包含WCFServiceLibrary.pdb文件...但是當發生任何錯誤時,事件查看器中不會顯示堆棧跟蹤。

任何想法?

謝謝!

回答

0

您不需要PDB符號來獲取堆棧跟蹤。僅當您想獲取本地變量或源代碼行號時,才需要受管理的二進制文件的PDB符號。

幾個可能的原因,你可能無法看到被記錄的事件:

  • 您的服務帳戶沒有權限寫入事件日誌。例如,如果您正在寫入系統事件日誌並使用常規用戶帳戶,則不會看到任何事件。
  • 不會拋出該exeption。檢查你的代碼是否使用調試器實際調用。失敗可能是由較低級別的WCF代碼處理的。
  • 您的EventLogExceptionLogger實施中可能存在錯誤