我在我的web.config中有这个,它由DiscountASP.net ISP托管
<customErrors mode="On" defaultRedirect="">
<error statusCode="404" redirect="404.aspx"/>
<error statusCode="500" redirect="404.aspx"/>
</customErrors>
我在DiscountASP.net上托管该网站,他们还告诉您以这种方式配置它。我正在使用企业库,但我不认为这应该有所作为。我不相信我需要为EL中的404配置任何签名。
当我的页面加载错误时,我的404.aspx没有显示,我收到了默认的自定义错误消息。我不知道为什么我没有显示我的404.aspx页面并取而代之:
运行时错误 说明:服务器上发生应用程序错误。此应用程序的当前自定义错误设置可防止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以在本地服务器计算机上运行的浏览器中查看。
详细信息:要在远程计算机上查看此特定错误消息的详细信息,请在位于当前Web应用程序根目录中的“web.config”配置文件中创建标记。然后,此标记应将其“mode”属性设置为“Off”。
注意:您看到的当前错误页面可以通过修改应用程序配置标记的“defaultRedirect”属性以指向自定义错误页面URL来替换为自定义错误页面。
答案 0 :(得分:1)
您是否尝试使用相对路径来查看是否会产生影响?
<error statusCode="404" redirect="~/404.aspx"/>
或者,尝试一个绝对路径:
<error statusCode="404" redirect="http://www.domain.com/errors/404.aspx"/>
编辑:正如其他人所指出的,并根据您对其他答案的评论,当有人导航到不存在的页面时,应显示404错误页面,而一般错误defaultRedirect可以捕获页面。因此,如果您正在测试404,那么请确保您使用不存在的页面进行测试。要测试defaultRedirect,请让其中一个页面抛出异常等。
答案 1 :(得分:0)
你是否有可能在另一个web.config中覆盖它,比如说在子文件夹中?或者我们可以走另一条路。你确定这是在应用程序根目录吗?
答案 2 :(得分:0)
您是否有任何理由不想使用defaultRedirect进行500次错误?
答案 3 :(得分:0)
您正在FTP文件正确吗?尝试将文件上传为二进制文件而不是文本。您可能遇到编码问题。我现在愿意下注,你在web.config中所做的一切都没有用。
答案 4 :(得分:0)
我找到了解决方案here。 真正的问题是:
Response.TrySkipIisCustomErrors = true;