【问题标题】:Design Pattern for error handling in ASP.NET 3.5 siteASP.NET 3.5 站点中错误处理的设计模式
【发布时间】:2011-02-10 05:18:24
【问题描述】:

我对 ASP.NET 编程和一般的 Web 编程比较陌生。我们有一个最近从 .NET 1.1 移植到 3.5 的站点。目前我们有两种错误处理方法:在页面上的数据加载期间捕获错误并在页面上的标签中显示格式化错误,或者重定向到通用错误页面。这两个都有些烦人,因为现在我正在尝试重新设计我们的错误的显示方式。

我们很快就会转向母版页,我想知道是否有办法“内置”错误处理控件。我的意思是使用我设计的 ASP.NET 用户控件,它只是传递从服务器返回的错误字符串。如果发生错误,页面将不会显示内容,而是显示错误控件。这为我们提供了在错误期间保留当前横幅/导航的能力(我们没有通过通用错误页面获得),并且让我不必将控件添加到我们拥有的每个 aspx 页面(我与使用每页标签系统有关)。这样的事情有意义吗?最终,我只想将错误控件添加到单个页面,并且所有其他页面都可以直接访问它。这是母版页的帮助吗?

谢谢!

【问题讨论】:

    标签: asp.net .net-3.5 error-handling master-pages


    【解决方案1】:

    使用 global.asax 中的 application_error 事件来捕获所有未处理的错误 - 您可以在此处记录它们。您不应该像这样向客户端输出错误消息。

    使用 web.config 中的 CustomErrors 部分为您的用户定义自定义错误页面。

    您还可以考虑使用ELMAH 之类的东西来轻松登录。

    【讨论】:

    • 感谢 ELMAH 的链接,我们可能会使用这样的东西。我们遇到的真正问题不是未处理的异常,更多的是我们的服务器在数据检索期间返回错误。以及如何设计网站,使每个页面都以相同的方式向用户显示错误。
    • 好的,您可以考虑在母版页上提供一种方法来设置错误标签的文本,这可能是一种一致地写出解释性错误消息的方法。
    猜你喜欢
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多