【问题标题】:IIS default 404 error page not showing while browsing non existing page with.aspx extension使用 .aspx 扩展名浏览非现有页面时,IIS 默认 404 错误页面未显示
【发布时间】:2022-02-02 11:57:36
【问题描述】:

我们在 IIS 中托管了一个应用程序。路径类似于domainname/ApplicationName/page.aspx。如果我浏览domainname/ApplicationName/dgdghdhshshs(任何不存在的没有扩展名的页面),它将显示默认的 404 页面。但如果我输入domainname/ApplicationName/dgdghdhshshs.aspx(添加了.aspx 扩展名),它将显示asp 黄页。我想要的是,如果从浏览器访问任何无效的页面或路径,它应该显示默认的 404 页面。有什么办法吗?

对于 .php、.html 和 .py 等其他文件扩展名,会自动出现默认 404 错误页面。仅适用于 .aspx 其显示的黄页。是否有任何选项可以绕过这个 aspx 页面?

【问题讨论】:

  • 据我所知,在 asp.net 上禁用 YSOD 可能很困难。当您在末尾添加 .aspx 时,IIS 会将请求传递到 asp.net 路由中。 IIS 无法知道文件是否存在,因为 IIS 本身只是一个静态文件处理服务器。动态文件需要交给asp.net路由来判断文件是否存在。您将在 IIS 中找到两个错误模块。一个是错误页面,另一个是。净错误页面。 YSOD 设置在 .NET 错误页面中。但是此模块中没有禁用按钮。 i.stack.imgur.com/b600h.png

标签: asp.net .net windows iis webforms


【解决方案1】:

对于生产环境,您应该在 web.config 文件中设置如下内容:

<customErrors mode="On" defaultRedirect="SomethingWentWrong.aspx">
  <error statusCode="404" redirect="Http404ErrorPage.aspx" />
  <error statusCode="500" redirect="SomethingWentWrong.aspx" />
  <error statusCode="401" redirect="UnauthorizedAccess.aspx" />
</customErrors>

有关自定义错误的更多信息here

【讨论】:

  • 我想要实现的不是自定义错误页面。 IIS 的默认 404 错误页面是我想要的,而不是 asp 黄页。是否可以在自定义错误部分提及默认 404 页面。我试过了,但没用。
  • 可能是routing 的问题?
猜你喜欢
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
相关资源
最近更新 更多