ASP.NET 如何输出自定义的 HTTP 404 错误页

当在页面上输出下面代码的时候就会自动调用 IIS 配置的 404 错误页面

Response.StatusCode = 404 ;

现在需求是

输出Http状态码为 404 , 同时不调用 IIS 配置的 404 错误页面,而是动态输出一些内容,这些内容是可以程序控制的。

这个如何做到??

如果能在程序集中控制到就好了

写了一个 DLL HTTPModule ,类似于反向代理

反向代理过来的网页可能是404的状态,同时会输出一个404 的自定义页面(美工设计过的)

当输出404状态的时候,

调用了IIS 自带的 404 错误页 输出不了源页面的 404 页面

阅读 8.6k
6 个回答

把IIS里404功能禁用了,web.config里有可以设置404页面吧~

修改webconfig

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx">
    <error statusCode="404" redirect="~/ErrorPages/404.aspx" />
</customErrors>

在Global.asax文件中定义,或者在Web.config中定义都可以的啊。

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Xml.Linq;

namespace Travel.Web
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Error(object sender, EventArgs e)
        {
            try
            {
                if (Response.StatusCode == 404)
                {
                    //自定义代码
                    //跳转页面
                    Response.Redirect("~/...");
                }else{
                    //记录日志等...
                }
            }
            catch (Exception ex)
            {
                Server.ClearError();
            }
        }
    }
}
新手上路,请多包涵

在错误页面控制呀图片描述

这样就跳到错误页面了 想输出什么状态码都可以了

新手上路,请多包涵

关于404自定义错误跳转的问题
来自[url=http://www.youyuanmiyu.com]游园密语[/url]【高级技术经理】三亚游达人(349241462@QQ.com)
localhost/shop 不跳
localhost/shop/不跳
localhost/shop/*.aspx 却能跳
localhost/shop/*.ashx 也能跳
localhost/shop/*.html 又不能跳
*表示任意字符
这是什么鬼啊,要怎么解决呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进