2012-03-03 41 views
0

我有一個函數,得到一個異常(ex)並檢索它的細節,然後將它們保存到數據庫中。在本地和主機檢索異常詳細信息

 public static void NewLog(Exception ex, HowToLog option) 
    { 
     // retrive details of exception 
     System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true); 
     string PageName = trace.GetFrame(trace.FrameCount - 1).GetFileName(); 
     PageName = PageName.Substring(PageName.LastIndexOf("\\") + 1); 
.... 
} 

這部作品在本地,但對主機時發生錯誤的時候,該函數試圖將其保存到數據庫下面代碼的異常「對象refrence未設置爲一個對象」:

PageName = PageName.Substring(PageName.LastIndexOf("\\") + 1); 
+0

可以是頁面名爲null,或者子字符串得到的值不正確,例如找不到\\符號 – Aristos 2012-03-03 22:10:46

回答

2

外貌比如PageName爲null ..

+0

是的,但是這個在當地工作 – 2012-03-03 20:38:49

+0

爲什麼PageName是null?你需要提供一些代碼來顯示它來自哪裏。如果你幾乎沒有顯示我們,你會如何期待我們的幫助? – usr 2012-03-03 20:40:25

+2

它在本地工作最有可能是因爲你有.pdb文件,因此運行時可以查找符號並找到文件名。 StackFrame.GetFileName的文檔說它將返回空「如果文件名不能確定。」 – 2012-03-03 21:20:00