MasterPage 错误页面中的 ASP.NET CustomError 处理
我将错误重定向到 Error.aspx
<system.web>
<customErrors defaultRedirect="error.aspx" mode="On">
<error redirect="error.aspx" statusCode="500" />
</system.web>
,问题是 Error.aspx 的 ErrorMasterPage 中还有第二个错误
<script Language="C#" MasterPageFile="~/ErrorMaster.Master" runat="Server">
,而 CustomError 无法处理第二个错误,而它就像一个循环(它将重定向到 Error.aspx 和 Error.aspx 的 Masterpage有错误。
这里有问题:
示例:
Login.aspx(有错误) -> Error.aspx -> ErrorMasterPage.Master (有错误) -> 显示黄页 谢谢
I redirect Errors to Error.aspx
<system.web>
<customErrors defaultRedirect="error.aspx" mode="On">
<error redirect="error.aspx" statusCode="500" />
</system.web>
and the problem is that there is also second error in ErrorMasterPage of Error.aspx
<script Language="C#" MasterPageFile="~/ErrorMaster.Master" runat="Server">
and CustomError can not handle the second error while its like a loop ( it will redirect to error.aspx and Masterpage of Error.aspx has Error.
here is problem:
Example:
Login.aspx(has Error) -> Error.aspx -> ErrorMasterPage.Master (has Error) -> Show Yellow Page
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用 web.config 进行自动重定向,我想说您应该有一个非常简单的错误页面,几乎不可能出现服务器错误。如果您正在该页面上访问数据库,并且错误与此相关,您将进入循环。
另一种选择是使用 global.asax 上的错误处理程序重定向到错误页面。这将涉及 C# 逻辑。在那里,您可以检测错误是否是在 error.aspx 上生成的,在这种情况下,您可以重定向到 fatalerror.aspx(例如,仅显示一条消息的白色页面)。
If you're doing automatic redirection using web.config I'd say you should have an error page so simple that almost no server error is possible. If you're accessing the database on that page, you would enter on a loop if the error is related with that.
Another option would be redirecting to the error page using the error handler on global.asax. This would involve C# logic. There, you could detect if the error was generated on error.aspx and on that case, you could redirect to fatalerror.aspx (a white page just showing a message for instance).