【问题标题】:404 Custom Error in IIS 6.0 and ASPX doesnt workIIS 6.0 和 ASPX 中的 404 自定义错误不起作用
【发布时间】:2011-04-21 12:52:41
【问题描述】:

我创建了一个名为 404.aspx 的 404 错误页面,当我手动调用它时效果非常好。 但是在 web.config 和 IIS 6.0 中设置了“自定义错误”之后。它不能正常工作。

例如,如果我输入了错误的 URL,它将不起作用,并且会出现如下所示的消息。

XML Parsing Error: not well-formed
Location: **http://domain/anything** (without an extension)
Line Number 1, Column 2:<%@ page language="C#" masterpagefile="~/Public.master" autoeventwireup="true" inherits="_404, App_We 

而且,如果我在最后键入这样的 url:http://domain/anything.ASPX (ADDING THE .ASPX),它将正确重定向到自定义错误 404.aspx并且工作正常。

我能做些什么来完成这项工作?

【问题讨论】:

标签: .net iis http-status-code-404 asp.net


【解决方案1】:

听起来您已将 IIS 自定义错误页面类型设置为 File 而不是 Url

设置为 File 只会导致 IIS 将错误页面的内容逐字呈现给响应流(即作为静态文件),而不是对错误页面进行 HTTP 重定向,从而导致页面被 ASP 处理.NET。

如果使用 URL 消息类型,IIS 6 要求输入“站点内的绝对 URL”,例如:

/404.aspx

【讨论】:

  • 这是我尝试的第一个选项。但是无论我写什么,都会出现一个黄色标注,并显示以下消息:错误的 URL 格式。请输入站点内的绝对 URL。
  • 如果我在 url 中输入任何没有 .aspx 扩展名的内容,它将显示一条错误消息,如果我输入任何页面名称并添加 .aspx 扩展名,它将带有漂亮的错误页面。奇怪的事情。不知道还能做什么。
  • 凯夫。你是对的。你解决了这个问题。这是公认的答案。我使用的是“~/404.aspx”。
  • +1 ~ 我使用的是“文件”,它在 IE9 中有效,但在 FF5 中无效。当我将其更改为 url 时,它开始在 FF 中工作。
【解决方案2】:

我假设你的语法如下:

<customErrors
       mode="RemoteOnly" 
       defaultRedirect="~/errors/GeneralError.aspx" 
/>

要查看自定义页面,请自行将模式设置为“开启”

<customErrors
       mode="On" 
       defaultRedirect="~/errors/GeneralError.aspx" 
/>

模式定义如下:

  • 开 – 不向任何人显示错误详细信息,即使是本地用户。如果您指定了自定义错误页面,它将始终被使用。
  • 关闭 - 每个人都将看到错误详细信息,本地和远程用户都是如此。如果您指定了自定义错误页面,它将不会被使用。
  • RemoteOnly – 本地用户将看到带有堆栈跟踪和编译详细信息的详细错误页面,而远程用户将看到一个简洁的页面,通知他们发生了错误。如果自定义错误页面可用,它将仅向远程用户显示。

【讨论】:

  • 我的 web.config 中有这个
  • 谢谢,我很快修改了我的 webconfig。我添加了这个: 但它几乎是一样的。 ://
  • @UXdesigner - 我希望你编辑了现有的 customErrors 设置,并且没有添加第二个。
  • 是现有的,没有添加第二个。
猜你喜欢
  • 2016-09-22
  • 2015-09-22
  • 1970-01-01
  • 2014-03-30
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多