AXzhz

专注ASP.NET!
        写软件的都是小姐,用软件的都是大爷。真TMD说的正确!
                嫖妓不给钱,反说被强奸!___中国共享软件的无奈!
读小学的时候大学不要钱,读大学了小学不要钱。
没工作时国家有分福利房,工作了后全是高价房!!

                        此软件能有效的破解QQ密码。(注:破解QQ密码是违法行为,请不要将软件用于违法行为)
“安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山。”1200多年前,诗人杜甫的理想,如今被一帮享受着电脑和互联网带来的快捷生活方式的受过高等教育的大孩子憧憬着。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

ASP.NET错误处理的两种方案_AX

网页出错,在所难免,如何处理,方案任选.

一般页面出错后,我们的处理方法一般分为三步:业务逻辑→写入日志→跳转到默认页或指定页

 

【方案一】

1.在web.config添加一个节点,指定跳转到的默认页.mode为RemoteOnly表示本地报黄页,其它用户跳转.

<system.web>
    
<customErrors mode="On" defaultRedirect="default.aspx">            
    
</customErrors>
</system.web>

 

2.在Global.asax中添加错误处理

复制代码
    void Application_Error(object sender, EventArgs e) 
    { 
        
//在出现未处理的错误时运行的代码
        
//业务处理
        
//写日志,下面是一个例子,建议使用第三方控件Log4Net
        try
        {
            
using (System.IO.StreamWriter sw = System.IO.File.AppendText("D:\\AX.txt"))
            {
                sw.WriteLine(Server.GetLastError().InnerException.Message);
                sw.WriteLine(Server.GetLastError().InnerException.StackTrace);
                sw.Flush();
            }
        }
        
catch (Exception)
        {
        }
    }
复制代码

 

3.如果某个Page出错后需要跳转到指定页,重写Page的AddParsedSubObject方法,

以保证页面加载最开始为Errorpage属性赋值,其属性依赖于第一步中的mode="On",

不确定mode为RemoteOnly是否可以

(跳转页后面会带系统默认的参数aspxerrorpath=...)

懒人可以写在Page_Load方法的第一句话中,该方法之前出错将会使用第二步中的处理方式.我是懒人...

    protected override void AddParsedSubObject(object obj)
    {
        ErrorPage 
= "Log4Net.aspx";
        
base.AddParsedSubObject(obj);
    }

【追加】还可以在页面前端加Attribute:ErrorPage

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="OnErrorTest.aspx.cs" Inherits="OnErrorTest" ErrorPage="~/AX.aspx" %>

 

【方案二】

1.在Global.asax中添加错误处理,并指定默认页.

复制代码
    void Application_Error(object sender, EventArgs e) 
    { 
        
//在出现未处理的错误时运行的代码
        
//业务处理
        
//写日志,下面是一个例子,建议使用第三方控件Log4Net
        try
        {
            
using (System.IO.StreamWriter sw = System.IO.File.AppendText("D:\\AX.txt"))
            {
                
//Server.GetLastError().InnerException.ToString()是异常的详细内容
                sw.WriteLine(Server.GetLastError().InnerException.ToString());
                sw.Flush();
            }
        }
        
finally
        {
            
//跳转到默认页
            Server.Transfer("Default.aspx");
        }
    }
复制代码

 

2.如果某个Page出错后需要跳转到指定页

复制代码
    void Page_Error(object sender, EventArgs e)
    {   
        
//业务处理
        
//写日志
        
//跳转到指定页
        
//Server.Transfer("Log4Net.aspx");
        
//
        
//Response.Redirect("Log4Net.aspx");

        
//清除错误,如果执行了上面的跳转页,将永远不会执行到这句话
        
//如果不清除,就会执行Global.asax的Application_Error()方法
        
//Server.ClearError();
    }
复制代码

 

推荐使用方案一,因为可以在web.config修改跳转的默认值

 

posted on   斧头帮少帮主  阅读(1640)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2006-08-05 Help_怎么换行_AX
Google
 
站内搜索:        
园内搜索:
金山词霸:
点击右上角即可分享
微信分享提示