• asp.net记录错误信息的一般处理方法


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

    首先,我先写一个静态方法用于将错误信息记录到文本文件,这里是将错误信息记录到服务器上的Error文件夹下,代码如下:

    复制代码
        using System.Globalization;

    /// <summary> /// 用于将错误信息输出到txt文件 /// </summary> /// <param name="errorMessage">错误详细信息</param> public static void WriteError(string errorMessage) { try { string path = "~/Error/" + DateTime.Today.ToString("yyMMdd") + ".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(" Log Entry : "); w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture)); w.WriteLine(errorMessage); w.WriteLine("________________________________________________________"); w.Flush(); w.Close(); } } catch (Exception ex) { WriteError(ex.Message); } }
    复制代码

    在网站Global.asax文件的Application_Error中加入如下代码

    复制代码
        void Application_Error(object sender, EventArgs e)
        {
            // 在出现未处理的错误时运行的代码
            Exception objErr = Server.GetLastError().GetBaseException();
            //记录出现错误的IP地址
            string strIP = Request.UserHostAddress;
           string err = "Ip【" + strIP + "】" + Environment.NewLine + "Error in【" + Request.Url.ToString() +
                              "】" + Environment.NewLine + "Error Message【" + objErr.Message.ToString() + "】";
            //记录错误
            FN.WriteError(err);
        }
    复制代码

    配置Web.Config文件

        <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
         <!--可以指定其他错误页面...-->
        </customErrors>
        </system.web>

    建立一个GenericErrorPage.htm文件,用于使用者出现错误时呈现的错误页面。

    完!

    web.config中配置页面出错后跳转指定错误页面

     

    每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中的<system.web>节点下配置 <customErrors>,在出现比如403 404这样的错误时,跳转到我们自定义的页面

    <customErrors>:用户错误配置节

    该配置节能够指定当出现错误时,系统自动跳转到一个错误发生的页面,同时也能够为应用程序配置是否支持自定义错误。“<customErrors>”配置节包括两种属性,这两种属性分别为mode和defaultRedirect。其中mode包括3种状态,这三种状态分别为On、Off和RemoteOnly。On表示启动自定义错误;Off表示不启动自定义错误;RemoteOnly表示给远程用户显示自定义错误。另外:defaultRedirect属性则配置了当应用程序发生错误时跳转的页面。

    “<customErrors>”配置节还包括子配置节“<error>”,该标记用于特定状态的自定义错误页面,子标记“<error>”包括两个属性,分别为statusCode和redirect,其中statusCode用于捕捉发生错误的状态码,而redirect指定发生该错误后跳转的页面,该配置节配置代码如下所示。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

            <error statusCode="403" redirect="NoAccess.htm" />

            <error statusCode="404" redirect="FileNotFound.htm" />

        </customErrors>

    上述代码则在Web.config文件中配置了相应的customErrors信息。当出现404错误时,系统会自行跳转到FileNotFound.htm页面以提示404错误,开发人员能够编写FileNotFound.htm页面进行用户提示

    启动阶段 应该启动程序不调试

  • 相关阅读:
    【整理】Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR
    C/C++中printf和C++中cout的输出格式
    左值的理解(给渴望学习的新手)
    c++ 指针精髓
    c++中的函数前面加个LRESULT是什么意思啊?
    pb调用vc写的动态链接库文件
    C++问题 & *用法
    vs2008下MFC内存泄露问题一点经验
    mysql5.6.41winx64安装
    开发是一件需要非常小心的工作
  • 原文地址:https://www.cnblogs.com/lierjie/p/3830537.html
Copyright © 2020-2023  润新知