2013-07-02 41 views
0

我的一個網頁是給我的:如何登錄500內部服務器錯誤

GET url_plus_query_string_go_here 500 (Internal Server Error) 

類型的錯誤。如何設置頁面/服務器,以便我可以記錄這些錯誤以瞭解關於它們的更多信息以及它們爲什麼會發生?

+0

看看事件查看器,看看發生了什麼。 –

+0

這個問題可能會得到更好的回覆http://webmasters.stackexchange.com/ –

+0

@RowlandShaw:我不同意。這是特定於正在使用的技術堆棧,在這種情況下ASP.NET –

回答

1

您可以使用ELMAH輕鬆記錄所有異常。

它爲您的ASP.NET應用程序添加了一個消息處理程序,該程序會自動將您的異常記錄到數據庫並提供一個Web界面來查看它們。

除了設置數據庫和調整web.config,您不必在應用程序中更改任何內容。尤其是,您不必爲所有控制器添加try catch處理程序。

0

您可以創建一個類Log.cs並使用寫入方法將異常記錄到文本文件中。 現在在您的代碼中調用此方法(例如在catch塊中)。使用下面的代碼創建一個類log.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 

namespace TestApp 
{ 
public class Log 
{ 
    protected static string GetFileName() 
    { 
     return "log.txt"; 
    } 

    public Log() 
    { 

    } 

    public static void Write(string message) 
    { 
     System.IO.File.AppendAllText(GetFullFilePath(), message + Environment.NewLine); 
    } 



    public static string ReadAll() 
    { 
     return System.IO.File.ReadAllText(GetFullFilePath()); 
    } 

    private static string GetFullFilePath() 
    { 
     return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GetFileName()); 
    } 
} 
} 

現在應用下面的代碼插入您的異常或其他任何要跟蹤運行時間。我只在這裏顯示catch塊,但是你可以在代碼中的任何地方使用它。

catch (Exception ex) 
     { 
      Log.Write(DateTime.Now + " " + ex.Message + " Something relevant string"); 
     } 
+0

This給我一個錯誤信息:'名字'路徑'在當前上下文中不存在。 – oshirowanen

+0

添加名稱Space System.IO,即使用System.IO –