我有一个Web应用程序,它有Global_Asax和自定义错误页面。当用户尝试输入不存在的无效页面时,将在Global_asax中触发Application_Error并记录异常,这实际上不是异常(您可以在下面看到异常详细信息)。我不想在global_asax中处理这种情况,而是在IIS中处理。我还尝试输入以.asp和.html结尾的无效路径,它们工作正常(它们不以global_asax结尾,而是在默认的404页面中结束)。
我需要知道我必须从IIS7 Manager更改哪个设置。
任何帮助都将不胜感激。
错误 - 文件'/restricted/ff.aspx' 不存在。
System.Web.HttpException:该文件 'test.aspx'不存在。在 System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath)at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext的 上下文,VirtualPath虚拟路径, 布尔值noBuild,布尔值 allowCrossApp,Boolean allowBuildInPrecompile)at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext上下文, Boolean allowCrossApp,Boolean noAssert)at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath,Type requiredBaseType, HttpContext上下文,布尔值 allowCrossApp,Boolean noAssert)at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext的 context,String requestType, VirtualPath virtualPath,String physicalPath)at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步,布尔& completedSynchronously)
答案 0 :(得分:2)
您可以尝试以下方法之一:
编辑 web.config 文件以查找自定义错误:
<customErrors mode="On">
<error statusCode="404" redirect="404.aspx"/>
</customErrors>
添加404.aspx
页并将状态代码设置为 404 :
public partial class _04 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.StatusCode = 404;
}
}
如果它没有帮助你也尝试这个(它可能会被你的主页重置):
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
Response.StatusCode = 404;
}