知识大全 使用ASP.NET 2.0进行记录错误

Posted 文件

篇首语:没有道路直接通向成功,我们必须用自己的辛勤与汗水,来凝结这条漫长的道路。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用ASP.NET 2.0进行记录错误相关的知识,希望对你有一定的参考价值。

使用ASP.NET 2.0进行记录错误  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在本文中 我们将通过一个简单的处理来记录在我们的网站中的错误和异常 我们会这样操作 每当遇到程序错误时 将使用者导航到一个单独的页面 同时 错误将被记录到服务器上的一个文本文件 每当错误发生时 我们将以日志的形式每天记录 说了这么多 让我们来看一些代码

  步骤一 首先创建一个错误文件夹用于存放错误日志文件 鼠标右键站点 > 创建新文件夹 将该文件夹命名为 Error 如果站点中没有 nfig 文件时 请添加一个 右键站点 > 添加新项目 > nfig

  步骤二 现在我们要创建一个错误处理的代码 我们只需要右键站点 > 添加新项目 > 选择类 重命名该类为 ErrHandler cs 然后单击 添加 按钮 当你这么操作的时候 会弹出一个对话框 是否要将这个类文件保存在 App_Code 里面 我们选择接受

  步骤三 现在我们为ErrHandler class添加一些功能 该类用于接受错误信息并将错误信息保存在一个文本文件中 每天创建一个这样的文本文件 如果已经存在相同的文件名时 错误信息将会追加到这个文件中 否则 就创建一个新文件 并将错误信息写入该文件

  代码看来如下   /// Handles error by accepting the error message    /// Displays the page on which the error occured    public static void WriteError(string errorMessage)            try                    string path = ~/Error/ + DateTime Today ToString( dd mm yy ) + txt ;            if (!File Exists(System Web HttpContext Current Server MapPath(path)))                            File Create(System Web HttpContext Current Server MapPath(path)) Close();                        using (StreamWriter w = File AppendText(System Web HttpContext Current Server MapPath(path)))                            w WriteLine( \\r\\nLog Entry : );                w WriteLine( DateTime Now ToString(CultureInfo InvariantCulture));                string err = Error in: + System Web HttpContext Current Request Url ToString() +                              Error Message: + errorMessage;                w WriteLine(err);                w WriteLine( __________________________ );                w Flush();                w Close();                            catch (Exception ex)                    WriteError(ex Message);           

  这就是我们的ErrHandler类了 然后我们来看看如何使用这个类和在Page级中(Application级中)处理错误

  在Page级中处理错误

  在Default aspx中 从工具箱中添加一个button控件 将这个button命名为 btnError 并设置值为 Throw Handled Exception 我们将抛出一个异常 只要我们定义了 catch 块 当错误发生时 就会被捕捉到并登记在Error文件夹中 文本文件将以当天的日期作为文件名 不存在文件时 一个新的文件将会被以下代码所创建

  按钮点击操作代码如下  protected void btnHandled_Click(object sender EventArgs e)            try                    throw new Exception( Sample Exception );                catch (Exception ex)                    // Log the error to a text file in the Error folder            ErrHandler WriteError(ex Message);           

    现在 运行程序 并点击按钮 因为我们已经在代码中处理了错误和记录下了异常 你会发现当点击按钮时 似乎什么也没发生 关闭程序 刷新Error文件夹 你会看到有个以今天日期为文件名的新文件被创建 异常已经被成功记录下如下所示 其中日期和时间在您的机器上会有所不同  Log Entry : / / : : Error in:x Error Message:Sample Exception__________________________

  Redirecting users on unhandled errors(在未有处理错误情况下重定向用户)

  让我们看看如何在Application级上来捕捉未有错误处理而发生的错误 并将用户定向到一个不同的页面

  要捕捉到未有错误处理的错误 只需做以下的工作即可 添加一个 Global asax 文件(右键工程项目 > Add New Item > Glabal asax) 在当中的 Application_Error() 方法中 增加以下代码  void Application_Error(object sender EventArgs e)            // Code that runs when an unhandled error occurs        Exception objErr = Server GetLastError() GetBaseException();        string err = Error in: + Request Url ToString() +                          Error Message: + objErr Message ToString();        // Log the error        ErrHandler WriteError(err);   

    我们注意到通过使用 Server GetLastError() 函数来捕捉错误 当一个未有错误处理的错误发生时 要将用户重定向到不同的页面 我们要做的是 打开你的 nfig 文件 并定位到 <customErrors> 标签处并注销它 在移除注释后 标签看来应该是这样的

  <!             The <customErrors> section enables configuration            of what to do if/when an unhandled error occurs            during the execution of a request Specifically             it enables developers to configure error pages            to be displayed in place of a error stack trace         >

  <customErrorsmode= RemoteOnly defaultRedirect= >                        <errorstatusCode= redirect= />                        <errorstatusCode= redirect= />                  </customErrors>

    将  mode= RemoteOnly tomode= On defaultRedirect= to defaultRedirect= ErrorPage aspx     修改为  <customErrorsmode= On defaultRedirect= ErrorPage aspx >                        <errorstatusCode= redirect= />                        <errorstatusCode= redirect= />                  </customErrors>

  这个配置文件将会将用户导向名为ErrorPage aspx 的页面 我们来创建这个错误页面 并显示一些信息给用户

  右键网站 > Add New Item > 创建 ErrorPage aspx 然后显示一个信息在页面中 提示用户有个错误发生了

    运行这个程序点击 Throw Unhandled Exception 按钮 你会发现用户被自动地定向到了 Error 页面 并且错误也被记录在 Error 文件夹中 cha138/Article/program/net/201311/12907

相关参考

知识大全 使用ASP.NET 2.0进行记录错误[2]

使用ASP.NET2.0进行记录错误[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  按钮点

知识大全 使用ASP.NET 2.0进行记录错误[3]

使用ASP.NET2.0进行记录错误[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  将&n

知识大全 如何由ASP.NET 1.1移植到ASP.NET 2.0

如何由ASP.NET1.1移植到ASP.NET2.0  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET入门教程 7.2 ASP.NET 2.0的数据控件

ASP.NET入门教程7.2ASP.NET2.0的数据控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 ASP.NET入门教程 10.5.3 ASP.NET 2.0的新特性[2]

ASP.NET入门教程10.5.3ASP.NET2.0的新特性[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 ASP.NET入门教程 10.5.3 ASP.NET 2.0的新特性[1]

ASP.NET入门教程10.5.3ASP.NET2.0的新特性[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 ASP.NET 2.0的编译模型

ASP.NET2.0的编译模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  支持两种编译模型(

知识大全 体验ASP.NET 2.0中的BuildProvider

体验ASP.NET2.0中的BuildProvider  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Asp.net 2.0 自定义控件开发

Asp.net2.0自定义控件开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  (一)概述  

知识大全 ASP.NET 2.0运行时简要分析

ASP.NET2.0运行时简要分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!概述: