ASP.NET默认的异常处理页面太难看了,如果在代码中每一个地方都添加try..catch块显得很繁琐,如果在web.config中配置默认的错误页面又得不到错误的详细信息,能不能有个办法一次性地把默认的异常处理页面统统修改过来啊?呵呵小菜鸟提问:D
解决方案 »
- 未将对象引用设置到对象的实例。
- 在网上下载的网站源代码,在iss能运行,不报错,在vs2010上报错?新手求救。。。
- 各位好人,请帮忙看看,未将对象引用设置到对象的实例
- 求救!!
- ----做一个类似FlashGet的小东西,求高手们给些建议!----
- 怎样更新xml中的数据
- 为什么在一部电脑上利用file控件的上传程序可以上传exe文件,但在另一部机上却不行
- 怎么在JAVASCRIPT里面执行LINKBUTTON的代码啊
- 帮忙指点一下,谢谢了!谢谢了!
- 怎么把做好的控件加入vs.net的工具栏toolbar中?
- 关于多个用户控件的问题
- string userName = Request.Form["txtName"].ToString();问题?
自定义错误页面就行了,在webconfig中指定出错时,转到该页面就行了。
<customErrors mode="On">
<error statusCode="403" redirect="NoAccess.htm" />
</customErrors>
{
String message = "\n\nURL:\n " + Request.Url.ToString()
+ "\n\nMESSAGE:\n " + Server.GetLastError().Message
+ "\n\nSTACK TRACE:\n" + Server.GetLastError().StackTrace;
String LogName = "Application";
if (!EventLog.SourceExists(LogName))
{
EventLog.CreateEventSource(LogName, LogName);
}
EventLog Log = new EventLog();
Log.Source = LogName;
Log.WriteEntry(message, EventLogEntryType.Error);//写到os日志中
Utility.Logs.WriteLogFile(message);//写到自定义的日志文件中 }
在web.config里设置的错误页用来捕捉异常似乎比较困难。只能给出千篇一律的错误信息。
{
Exception objErr = Server.GetLastError().GetBaseException();
string error = objErr.Message ;
Server.ClearError();
Application["error"] = error;
Response.Redirect("~/Error.aspx");
}
然后在error.aspx.cs里找到Application["error"]作相应处理。不过我这个也不完美,还是显示的生硬的错误信息,对用户不友好,你可以进一步加工成比较友好的错误信息。