`
raisun_1988
  • 浏览: 117973 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

.net页面出错时的处理方法

    博客分类:
  • .Net
阅读更多

 

【网上购物论坛】-IT泡吧![Www.itpob.Cn]网上购物社区! - Powered by Discuz!
http://www.itpob.cn/

 

一种做法,在Web.config文件配置

<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--><system.web>
      
<customErrors defaultRedirect="~/ErrorPage.aspx" 
                     mode
="RemoteOnly">
      
</customErrors>
</system.web>

 

  defaultRedirect属性用来指明当aspx页面发生了未处理错误时导向的页面; 但Asp.net使用重定向机制来重新导航错误页面,这样错误信息就会丢失,也就是说我们用Server.GetLastError()获得的Exception对象始终是空的。虽然可以提示用户出错,并提供一个返回出错页面的链接,却不能给管理员一个很好的错误提示。

2.第二种做法:在global文件里的Application_Error方法中处理

 

代码
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->        private void Page_Load(object sender, System.EventArgs e)
        {
            
throw(new ArgumentNullException());
        }

        
public void Page_Error(object sender,EventArgs e)
        {
            Exception ex
=Server.GetLastError().GetBaseException();

            
string errorTime="发生时间:"+DateTime.Now.ToString();
            
string errorAddress="发生异常页:"+Request.Url.ToString();
            
string errorInfo="异常信息:"+ex.Message;
            
string errorSource="错误源:"+ex.Source;
            
string errorTrace="堆栈信息:"+ex.StackTrace;

            Server.ClearError();

            System.IO.StreamWriter writer
=null;
            
try
            {
                
lock(this)
                {
                    
//写入日志 
                    string year=DateTime.Now.Year.ToString();
                    
string month=DateTime.Now.Month.ToString();
                    
string day=DateTime.Now.Day.ToString();
                    
string path=string.Empty;
                    
string filename=DateTime.Now.ToString("yyyyMMdd")+".txt";
                    path
=Server.MapPath("~/Error/")+year+month+day;
                    
if(!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    System.IO.FileInfo file
=new FileInfo(path+"/"+filename);
                    writer
=new StreamWriter(file.FullName,true);//文件不在则创建,true表示追加
                    writer.WriteLine("用户IP:"+Request.UserHostAddress);
                    writer.WriteLine(errorTime);
                    writer.WriteLine(errorAddress);
                    writer.WriteLine(errorInfo);
                    writer.WriteLine(errorSource);
                    writer.WriteLine(errorTrace);
                    writer.WriteLine(
"-------------------------------------------");

                }
            }
            
finally
            {
                
if(writer!=null)
                {
                    writer.Close();
                }
            }

            Server.ClearError();
//防止错误继续到要被处理的 Application_Error 事件中。
            Response.Redirect("~/ErrorPage.aspx");
            
        }

 

分享到:
评论

相关推荐

    asp.net网站出错时如何处理?

    ### ASP.NET网站出错时的处理方法 #### 一、理解出错信息的重要性 当ASP.NET网站出现错误时,最重要的是获取详细的出错信息。这些信息对于定位问题所在至关重要。通常情况下,在非出错服务器上访问出错网址只能...

    ASP.NET的错误处理机制

    ASP.NET作为一款广泛使用的Web应用程序开发框架,提供了多种有效的错误处理机制,帮助开发者更好地管理和响应运行时可能出现的问题。 #### 二、ASP.NET错误处理的重要性 对于任何Web应用程序而言,出错几乎是不可...

    asp.net页面实现Excel数据导入SqlServer

    总的来说,实现"asp.net页面实现Excel数据导入SqlServer"涉及到多个步骤:文件上传、Excel数据读取、数据转换、数据库操作。在这个过程中,我们可以使用ASP.NET的内置控件、.NET的Excel组件、SQLDMO库以及第三方工具...

    NCC _开发环境无法打开前端页面处理方法.zip

    NCC _开发环境打开WEB端部分页面显示内容【抱歉,您请求的页面出错啦】或【Cannot GET XXX】,处理插件,参考连接[https://blog.csdn.net/kemoing/article/details/118992246]

    asp.net复习资料

    ASP.NET 是微软公司推出的一种基于 .NET Framework 的网络应用程序开发...例如,熟悉ASP.NET文件扩展名,理解ASP.NET页面模型的优缺点,掌握C#.NET中的数据类型转换和异常处理机制,这些都是考试可能会涉及到的内容。

    AJAX例子 结合ASP.NET

    ASP.NET允许创建Web服务(.asmx文件)或在现有页面中定义Web方法(PageMethods),以处理AJAX请求。这些方法可以返回JSON或XML,方便客户端JavaScript解析并更新DOM。 6. **UpdatePanels和ScriptManager** ASP...

    asp.net论坛源码

    1. **页面生命周期与事件处理**:ASP.NET页面在请求过程中会经历一系列生命周期,包括初始化、加载、验证、呈现等阶段。每个阶段都对应着相应的事件,如Page_Load、Button_Click等,源码中的事件处理函数就是在这...

    .net图片格式转换源码

    在实际应用中,源码可能包含了异常处理机制,确保在文件上传或格式转换出错时能给出适当的反馈。此外,安全方面要考虑防止恶意文件上传,如检查文件类型、大小等,防止注入攻击。 8. **用户体验**: aspx页面可能...

    ASP.NET通讯录.rar

    6. 错误处理:通过全局异常处理,确保程序出错时能提供友好的错误信息,而不是直接显示堆栈跟踪。 7. 性能优化:可能采用了缓存策略,如Output Cache,减少数据库查询次数,提高响应速度。 8. 部署与扩展:应用...

    asp.net类的操作大全

    ASP.NET 提供了全局异常处理机制,可以在应用程序级别捕获和处理错误,确保即使在出错时也能提供良好的用户体验。 9. **配置管理**: ASP.NET 使用appsettings.json、web.config等文件存储配置信息,开发者可以...

    ASP.NET教材参考

    9. **异常处理**:通过全局异常处理,开发者可以确保在程序出错时提供统一的错误反馈,提高用户体验。 10. **部署**:了解如何将ASP.NET应用部署到IIS(Internet Information Services)或其他托管环境是开发过程中...

    WebKit.NET

    4. **事件监听**:注册事件处理器,如 LoadFinished、LoadError 等,以便在页面加载完成或出错时进行相应处理。 5. **JavaScript 交互**:利用 EvaluateScript 方法执行 JavaScript 代码,并通过返回的 Result 属性...

    asp.net分页类库

    ASP.NET分页类库是一种专门用于处理大量数据并将其按页面显示的工具,它能够显著提升Web应用程序的性能和用户体验。在ASP.NET中,分页是处理大数据集时的一个重要技术,尤其对于那些需要显示表格或者列表数据的场景...

    ASP.net的删除和修改

    当删除或修改操作出错时,应捕获异常并记录详细信息,以便于后续分析。ASP.NET提供了一套完善的错误处理机制,如Global.asax文件中的Application_Error事件,可以在此处统一处理全局异常。 在用户体验方面,可以...

    .net 邮件发送demo

    在 ASP.NET 环境中,这个功能通常会集成到Web应用程序的一个页面或控件中,用户通过表单提交相关信息,然后后台代码处理发送邮件的任务。 总的来说,`.NET邮件发送demo`项目是为了帮助开发者理解并实践在.NET环境中...

    .net 下的AJAX大数据量处理

    10. **错误处理和重试机制**:建立健壮的错误处理和重试策略,确保在网络不稳定或服务器出错时,仍能有效地处理大数据。 综上所述,.NET环境下的AJAX大数据量处理涉及到多个层面,包括服务器端优化、客户端性能提升...

    深入剖析ASP.NET的编译原理.rar

    ASP.NET页面经历多个生命周期阶段,包括初始化、加载、验证、呈现和卸载。在这些阶段中,编译可能会在不同的时间点发生。 6. **预生成视图(Precompiled Views)**: 为了提高首次加载速度,可以使用...

    asp.net课程设计小型bbs

    7. **异步处理**:利用ASP.NET的AsyncController或AJAX技术,可以实现部分页面更新,提高用户体验,如在用户发表新帖或回复时无需刷新整个页面。 8. **错误处理与日志记录**:设置全局错误处理机制,确保程序出错时...

    基于Asp.net的小型购物网站.rar

    3. **ASP.NET页面生命周期**:理解Asp.net页面从请求到响应的生命周期至关重要,包括初始化、加载、回发和卸载等阶段,这直接影响到页面事件处理和数据绑定。 4. **控件与数据绑定**:在smallShop中,会用到多种Web...

    ASP.NET MVC3开源框架

    Razor视图还支持HTML辅助方法,这些方法帮助开发者生成标准的HTML,降低了出错的可能性。 此外,ASP.NET MVC3包含了对jQuery等JavaScript库的内置支持,方便进行客户端脚本处理和交互。同时,它还集成了AJAX功能,...

Global site tag (gtag.js) - Google Analytics