日期:2014-05-17  浏览次数:20389 次

请教跳转到一个友好错误页的问题
程序如果出错,我一直是这样用的,现在我想跳转到一个单独的错误页面,然后显示错误信息,我在网上找了一下,说用
Global.asax,把代码写进去后,不知道这个出错的页面如何能跳到那个友好错误页?请教大家!谢谢。比如出错页为call.aspx,要跳转到errorpage.aspx,应该在call.aspx里怎么写代码呢?call.aspx在子目录里,errorpage.aspx在根目录里
C# code

      catch (Exception ex)
        {
            Response.Write("error.aspx?ErrorMsg=" + ex.Message.Replace("<br>", "").Replace("\n", "") + "&ErrorUrl=" + Request.Url.ToString().Replace("<br>", "").Replace("\n", ""));
            
        }


C# code
//这段代码是我网上找的,如果有不对的地方,指高手指出
void Application_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 (!System.IO.Directory.Exists(path))
                {
                    System.IO.Directory.CreateDirectory(path);
                }
                System.IO.FileInfo file = new System.IO.FileInfo(path + "/" + filename);
                writer = new System.IO.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.Transfer("errorpage.aspx"); //跳转到显示友好错误的页面


    }



------解决方案--------------------
在 webconfig 中配置 404之类的错误页
------解决方案--------------------
C# code
catch (Exception ex)
        {
            Response.Write("../../error.aspx?ErrorMsg=" + ex.Message.Replace("<br>", "").Replace("\n", "") + "&ErrorUrl=" + Request.Url.ToString().Replace("<br>", "").Replace("\n", ""));
            
        }