[英]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.