自定义 404 与 500 错误页面,URL 地址不会重定向(二)

上一篇是使用了全局过虑器来实现,还可以使用 HttpApplication 来处理。

参考文章:

http://www.cnblogs.com/dudu/p/aspnet_custom_error.html

第一步和上一篇的第一步完全相同。

第二步开始是:

在 Global.asax  里的 MvcApplication 类里加上该方法:

        /// <summary>

        ///  应用程序出异常时必然会进这里,当出异常后,返回 404 错误页面。

        /// </summary>

        protected void Application_Error()

        {

            Exception lastError = Server.GetLastError();



            if (lastError != null)

            {

                WriterException(this.Context, lastError);



                Response.StatusCode = 404;

                Server.ClearError();

            }

        }



        /// <summary>

        /// 写入异常信息。

        /// </summary>

        /// <param name="context"></param>

        /// <param name="exception"></param>

        private static void WriterException(HttpContext context, Exception exception)

        {

            var logger = LoggerFactory.Current.Create();



            object uri = context.Request.Url;



            string url = string.Empty;



            if (uri != null)

            {

                url = uri.ToString();

            }



            var ex = exception.GetBaseException();



            var text = new StringBuilder();



            text.AppendLine("异常地址:" + url);

            text.AppendLine("异常信息:" + ex.Message);



            logger.Fatal(ex, text.ToString());

        }

 

完成。

 

你可能感兴趣的:(url)