Asp.net 谷歌404和.NET自定义错误页面

Asp.net 谷歌404和.NET自定义错误页面,asp.net,http-status-code-404,google-widget,Asp.net,Http Status Code 404,Google Widget,我有一个ASP.NET2.0网站,有一个自定义的404页面。当找不到内容时,站点将为自定义404页面提供一个添加了aspxerrorpath=/mauro.aspx的查询字符串。404页本身的状态为200。为了解决这个问题,我添加了 protected void Page_Load(object sender, EventArgs e) { Response.StatusCode = 404; } 我添加了Google小部件,但有两个问题。在中,它不会显

我有一个ASP.NET2.0网站,有一个自定义的404页面。当找不到内容时,站点将为自定义404页面提供一个添加了aspxerrorpath=/mauro.aspx的查询字符串。404页本身的状态为200。为了解决这个问题,我添加了

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
    }
我添加了Google小部件,但有两个问题。在中,它不会显示它应该显示的位置。如果我把它添加到内容中,我会在第226行或其附近得到一个“未知错误”;如果我将其添加到标题部分,搜索框将显示在内容上方。在Firefox中,它运行良好

因此,我的问题是:

  • 如何使小部件显示 内联的
  • 如何创建错误页面 使用原始图像渲染为404 正在创建的文件的名称和路径 请求,以便在我请求时 mauro.aspx我得到了 404页,但URL为 mauro.aspx?(我想我会的 我必须在晚上做一些事情 开始\u request global.asax文件,但 在我之前想确认一下吗 做任何傻事。)

  • 我在global.asax文件中处理了404

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        string url = Request.RawUrl;
        if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url))))
        {
            Server.Transfer("/Error/FileNotFound.aspx");
        }
    }
    

    现在,如果有人能帮我使用谷歌小部件,那就太好了

    ASP.NET 3.5 SP1中有一种新的重定向模式,您现在可以使用它,这样它就不会重定向。它显示错误页面,但保持URL不变:

    对于URL重定向也很好。如果将web.config中的重定向模式设置为“ResponseWrite”,则可以避免重定向到自定义错误页,并使浏览器中的URL保持不变

    • (MSDN)

    谢谢,但我们在本例中使用的是.Net 2.0,但我会记住.Net 3.5 sp1的信息。我真的很抱歉,我一定是在读完你的文章时忘记了2.0部分。我的不好。没问题,我可以用这一点作为将来使用3.5的理由:)投票表决,因为这仍然很有帮助,而且很明显2.0在这一领域被破坏了。这是性能关键,每次请求时都要检查文件是否存在。正确,我可以将结果存储在字典或类似的工具中,以便更快地检查。。。