为什么404页面在某些情况下不起作用? (IIS,经典ASP)

时间:2017-11-17 10:24:32

标签: c# iis asp-classic

解释

在制作和本地,我网站的404页面大部分都可以正常工作。诸如http://localhost:43424/gibberish_r3hjjnwef之类的URL将返回设计良好的404 HTML页面,该页面位于网站文件夹中,并由IIS指向。

但是,当我将此网址更改为http://localhost:43424/gibberish_r3hjjnwef...时,它会出现以下“硬”错误,同时仍声称自己是404.

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /gibberish_r3hjjnwef...

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.2110.0

我宁愿它仍然给出了404 HTML页面。

我想也许这是一个彻头彻尾的无效网址,但http://www.bbc.co.uk/news/fdisdhfduhttp://www.bbc.co.uk/news/fdisdhfdu...都给了BBC很好的404页面。

问题

我能做些什么来改善这个?

相关信息(如有必要,乐意提供更多信息)

Microsoft .NET Framework版本:4.0.30319

ASP.NET版本:4.7.2110.0

语言/框架:C#/ Classic .ASP

1 个答案:

答案 0 :(得分:1)

我不确定这是否是你所指的,但也许可以尝试一下:

转到IIS管理器 - >网站 - > IIS错误页面。在右侧面板上,有一个“编辑功能设置...”设置。

那里的选择意味着:

  • 自定义错误页面:使用“IIS错误页面”作为所有失败请求的后备(例如,您的404页面设置后面的列表)
  • 详细错误页面:如果出现Asp.Net错误,请显示“Asp.Net错误页面”(“/'应用程序中的服务器错误”等)
  • 本地请求的详细错误等:显示远程请求的“IIS错误页面”,本地请求显示“Asp.net错误页面”(“服务器错误在'/'等)

这样可以有效地隐藏来自外部呼叫者的详细Asp.net错误页面(带有堆栈跟踪等),因为您可能不想向他们提供应用程序的详细信息。这是默认设置,当您从“localhost”调用无效URL时,您应该只看到“Asp.net错误页面”,而当您从另一台计算机调用该页面时,应该只看到“IIS错误页面”(404)。

因此,您可能想要尝试的是选择“自定义错误页面”选项(所有失败请求的“IIS错误页面”)。