void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
Exception objErr = Server.GetLastError().GetBaseException();
string error = string.Empty;
string errortime = string.Empty;
string erroraddr = string.Empty;
string errorinfo = string.Empty;
string errorsource = string.Empty;
string errortrace = string.Empty;
error += "发生时间:" + System.DateTime.Now.ToString() + "<br>";
errortime = "发生时间:" + System.DateTime.Now.ToString();
error += "发生异常页: " + Request.Url.ToString() + "<br>";
erroraddr = "发生异常页: " + Request.Url.ToString();
error += "异常信息: " + objErr.Message + "<br>";
errorinfo = "异常信息: " + objErr.Message;
errorsource = "错误源:" + objErr.Source;
errortrace = "堆栈信息:" + objErr.StackTrace;
error += "--------------------------------------<br>";
Server.ClearError();
Application["error"] = error;
//独占方式,因为文件只能由一个进程写入.
System.IO.StreamWriter writer=null;
try
{
lock (this)
{
// 写入日志
string year = DateTime.Now.Year.ToString();
string month = DateTime.Now.Month.ToString();
string path = string.Empty;
string filename = DateTime.Now.Day.ToString() + ".txt";
path = Server.MapPath("~/Error/") + year + "/" + month;
//如果目录不存在则创建
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
System.IO.FileInfo file = new System.IO.FileInfo(path + "/"+filename);
//文件不存在就创建,true表示追加
writer = new System.IO.StreamWriter(file.FullName, true)
writer.WriteLine("用户IP:" + Request.UserHostAddress);
writer.WriteLine(errortime);
writer.WriteLine(erroraddr);
writer.WriteLine(errorinfo);
writer.WriteLine(errorsource);
writer.WriteLine(errortrace);
}
}
finally
{
if (writer != null)
writer.Close();
}
Response.Redirect("~/Error/ErrorPage.aspx");
}
ErrorPage.aspx
<head runat="server">
<title>出错信息</title>
<link href="css/SITE.CSS" type="text/css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Width="568px"></asp:Label>
</form>
</body>
ErrorPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
this.Label1.Text = Application["Error"].ToString();
}
当然,错误页你可以不显示具体的错误信息,而是给用户一个友好的提示页面。
原帖地址:http://blog.csdn.net/w809026418/archive/2009/08/19/4462237.aspx
分享到:
相关推荐
Application_Error事件与Page_Error事件相类似,可使用他捕获发生在应用程序中的错误。由于事件发生在整个应用程序范围内,因此您可记录应用程序的错误信息或处理其他可能发生的应用程序级别的错误
ASP.NET 提供了三种用于在出现错误时捕获和响应错误的主要方法:page_error事件、application_error 事件以及应用程序配置文件 (Web.config)。 这三种方法的主要作用无非是创建自定义的错误报告,创建自定义错误报告...
为应用程序在Global.asax文件中创建Application_Error过程,来控制ASP.net代码错误; 为应用程序在Web.config文件中创建Application_Error过程,来控制ASP.net代码错误; 为应用程序在Global.asax文件中创建...
本文实例讲述了ASP.NET中Global和URLReWrite用法。分享给大家供大家参考。具体如下: Global.asax: 有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级...② Application_Error :程序中发生未
HttpRunTime调用HttpApplicationFactory的GetApplicationInstance方法创建HttpApplication(HttpApplication 继承自IHttpHandler,应用程序对象池中是否存 在HttpApplication,存在返回不存在New返回) 创
Excel应用程序对象_Application对象
void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 } void Session_Start(object sender, EventArgs e) { // 在新会话启动时运行的代码 Session["userName"] =...
第13章 SWT的高级应用.. 262 13.1 打印支持 262 13.1.1 打印类(Printer)和打印数据类(PrinterData) 262 13.1.2 打印程序示例概述 265 13.1.3 打印程序示例:主窗口程序 265 13.1.4 打印程序示例:打开...
“/”应用程序中的服务器错误。 运行时错误 说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看...
点击 开始->我的计算机->工具菜单->文件夹->选项-点击查看,在高级设置下,点击 显示隐藏档和档夹,去掉隐藏已知文件的扩展名选项,点击应用 点击确认.在WINDOWS的INF目录下,右键点击MDAC.INF,选择 安装. 按照提示...
在本期的 .NET 专栏中,我将介绍一些对付意外错误的技巧。通过捕获异常来处理异常失败是应用程序中常见的做法,对于托管应用程序,当遇到完全...关键字:unexpected error,managed application,security,异常,托管,意外
Yod同时支持单入口和多入口模式,应用灵活,形式自由。version 1.3.3:- 废除 Yod_Model 类中的 findAll 方法- 废除 Yod_Model 类中的 config、import、plugin、model 和 dbmodel 方法- 废除 Yod_Controller 类中的 ...
WinCE6.0 ARM平台的showerr.lib,用于屏蔽WinCE应用程序崩溃提示框。
-t 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用 -s 将应用安装到 sdcard -d 允许降级覆盖安装 -g 授予所有运行时权限 运行命令后如果见到类似如下输出(状态为 Success)代表...
stackoverflow “Login Error: There is an error in logging you into this application. Please try again later” facebook login troubleshoot facebook 关于Login Error: There is an error in logging you ...
* Application Demo http://demo.swfupload.org/applicationdemo ; * v1.0.2 Plugin Demo http://demo.swfupload.org/v102demo ; [编辑本段]选择合适的Flash控件 在发行包(SWFUpload v2)中含有2个版本的...
适用于Cordova r1.0.0的Android应用程序更新 Android Application Update是Cordova插件,允许用户检查Playstore上的更新 与cordova搭配使用: Appupdate . < featuer> ( url , callback_handler , error_handler ) ...