繁体   English   中英

在IIS7的自定义404错误页面中查找经典ASP错误

[英]Finding Classic ASP errors in a custom 404 error page in IIS7

我们正在将一些Classic ASP网站从IIS6框迁移到运行IIS7的新Server 2008框。

我们已经过了关于自定义错误的学习过程,现在这些错误可以正常工作,并且Server.GetLastError现在可以正常工作。

我们正在迁移的网站使用定制的CMS,该CMS使用自定义404.asp错误页面从URL中提取数据库内容。 这也很完美。

但是,当将2合并时(例如,在通过自定义404页面运行的页面上出现500错误),我们将收到一个完全空白的页面。 没有错误,没有任何信息。 只是一张白纸。

示例1: http : //snavebelac.com/thisdoesnotexist结果显示在自定义404页面中示例2: http : //snavebelac.com/st-test空白页面。 在自定义404页内,这有意地出现500错误。

我认为这是因为它正在运行自定义404.asp错误页面,从而以某种方式阻止了自定义500错误页面的运行。

有谁知道我如何能够配置服务器,从而触发自定义404页面,但是会像在IIS6中一样向浏览器输出500个错误,或者是否有办法配置服务器以处理自定义404以及定制500?

提前致谢。

查看此处发布的解决方案- 如何在ASP.NET MVC中正确处理404?

关键是Response.TrySkipIisCustomErrors = true;

我有一个类似的问题,该解决方案确实很奇怪,但可以肯定地起作用。

我会非常务实,请执行以下操作。

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL" existingResponse="Auto">
  <remove statusCode="500" subStatusCode="-1" />
  <error statusCode="500" subStatusCode="100" prefixLanguageFilePath="" path="/500.100.asp" responseMode="ExecuteURL" />
  <remove statusCode="404" subStatusCode="-1" />
  <error statusCode="404" prefixLanguageFilePath="" path="/404.asp" responseMode="ExecuteURL" />
</httpErrors>

如果您以空白页结尾,则该空白页将为“非空白”:

Response.Flush()

当IIS执行/500.100.asp中的代码时,它不会刷新响应,并以空白页结尾。 我保证在IIS7.5 / IIS8和Classic ASP中可能会出现“ 404”和“ 500.100”自定义错误;)

您必须将web.config配置为处理500个状态错误,如下所示:

<system.web>
    <customErrors mode="On" defaultRedirect="frmError.aspx">
        <error statusCode="404" redirect="frmNotFound.aspx" />
        <error statusCode="500" redirect="frmError.aspx" />
    </customErrors>
</system.web>

请注意第四行代码,在该行中,您说到女巫页面,因为您遇到500错误,因此必须对其进行调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM