我有一个Asp.Net Web项目,并将另一个发布到第一个的子目录中。嵌套的页面有自己的404页面,该页面设置为:
protected void Application_Error(object sender, EventArgs e)
{
if (Server.GetLastError() is HttpException serverError)
{
if (serverError.GetHttpCode() == (int)HttpStatusCode.NotFound)
{
Server.ClearError();
Server.Transfer("~/Error Pages/404.aspx");
}
}
}
(外部404页面在外部Web项目中的设置方式与另一404页面相同)。
如果我正在计算机上调试(未嵌套)并选择一个不存在的页面,则会显示此错误页面,以便我知道错误页面可以正常工作。但是,当我将其发布到另一个(第一个)应用程序时,如果我转到一个不存在的页面,则会看到外部应用程序的404页面。
那么,如何使嵌套应用程序中不存在的页面显示嵌套的404页面?
编辑
I think I found the problem。我从嵌套的404页面返回了404,这可能被解释为表示未找到404页面。因此,现在我面临的问题是如何在不发生这种情况的情况下返回404。请参阅链接。
答案 0 :(得分:2)
正在发生的事情以及可能的解释:
如果您的嵌套应用程序是virtual directory
,而根目录是application
,我希望~
会解析为应用程序的根目录。
因此您的内部网站将根解析为父应用。