如何记录500内部服务器错误

时间:2013-07-02 11:30:44

标签: c# iis-6 asmx asp.net-3.5 internal-server-error

我的一个网页给了我一个:

GET url_plus_query_string_go_here 500 (Internal Server Error)

错误类型。如何设置页面/服务器以便我可以记录这些错误以了解有关它们的更多信息以及它们发生的原因?

2 个答案:

答案 0 :(得分:1)

您可以使用ELMAH轻松记录所有例外情况。

它为您的ASP.NET应用程序添加了一个消息处理程序,它自动将您的异常记录到数据库并提供一个Web界面来查看它们。

除了设置数据库和调整web.config之外,您不必更改应用程序中的任何内容。特别是,您不必为所有控制器添加try catch处理程序。

答案 1 :(得分:0)

您可以创建一个Log.cs类,并使用write方法将异常记录到文本文件中。 现在在代码中调用此方法(例如在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");
        }