C# 如何记录500个内部服务器错误
我的一个网页给了我一个:C# 如何记录500个内部服务器错误,c#,iis-6,asmx,asp.net-3.5,internal-server-error,C#,Iis 6,Asmx,Asp.net 3.5,Internal Server Error,我的一个网页给了我一个: GET url_plus_query_string_go_here 500 (Internal Server Error) 错误类型。如何设置页面/服务器,以便记录这些错误,以了解有关错误的更多信息以及发生错误的原因?您可以使用轻松记录所有异常 它向ASP.NET应用程序添加一个消息处理程序,该程序自动将异常记录到数据库中,并提供一个web界面来查看异常 除了设置数据库和调整web.config之外,您不必更改应用程序中的任何内容。特别是,您不必向所有控制器添加try
GET url_plus_query_string_go_here 500 (Internal Server Error)
错误类型。如何设置页面/服务器,以便记录这些错误,以了解有关错误的更多信息以及发生错误的原因?您可以使用轻松记录所有异常
它向ASP.NET应用程序添加一个消息处理程序,该程序自动将异常记录到数据库中,并提供一个web界面来查看异常
除了设置数据库和调整web.config之外,您不必更改应用程序中的任何内容。特别是,您不必向所有控制器添加try-catch处理程序。您可以创建一个类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");
}
看看事件查看器,看看发生了什么。这个问题可能在@RowlandShaw上得到更好的回答:我不同意。这是特定于正在使用的技术堆栈的,在本例中为ASP。NET@DanielHilgarth我认为这更多的是关于配置Web服务器以及日志在哪里的问题;当然,代码中有遥测选项,可以提高记录内容的质量,等等。但是您仍然需要知道如何读取日志。@RowlandShaw:我建议使用ELMAH是针对ASP.NET的。它独立于正在使用的web服务器。这会给我一条错误消息:
名称“path”在当前上下文中不存在。
。添加名称空间System.IO,即使用System.IO