隻要在Web.Config中添加如下代碼即可。
<system.web>
<customErrors mode="On" defaultRedirect="~/Error.aspx" <!--全局性的 推薦mode為RemoteOnly:本機檢視詳細錯誤資訊,其他機器檢視定制的錯誤頁面 -->
<error statusCode="404" redirect="~/404.html"/>
<!--局部性的,可以添加404,403等已知錯誤-->
</customErrors>
</system.web>
可以在Error.aspx中寫代碼,把錯誤資訊寫到日志檔案中
using System;
using System.Web;
using System.IO;
namespace GridView入庫單管理
{
public partial class Error : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Exception ex = HttpContext.Current.Server.GetLastError(); //擷取錯誤對象;
string line = "------------------------------------------------------------------------------";
File.AppendAllText(Server.MapPath("~/Log.txt"), ex.Message + ex.StackTrace + "\n" + DateTime.Now + "\n" + line);
}
}
}
}
生成的錯誤資訊格式:(用404測試的)
檔案不存在。 在 System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
在 System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath)
在 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
2011-05-18 18:19:03
------------------------------------------------------------------------------