【问题标题】:What information should/shouldn't an error page display in a web application?错误页面应该/不应该在 Web 应用程序中显示哪些信息?
【发布时间】:2010-12-24 17:16:46
【问题描述】:

我正在为 ASP.NET MVC 应用程序开发一些错误视图(未找到、未知和一般错误视图),我很想知道其他人会如何回答这些问题:

  1. 您在这些页面上包含哪些类型的措辞?

  2. 您向最终用户显示什么样的信息?

  3. 您记录了哪些信息?

我不认为这个问题是针对任何 Web 应用程序框架的,因此邀请每个人参与 :)

【问题讨论】:

    标签: asp.net-mvc logging error-handling


    【解决方案1】:

    致用户:

    “抱歉,出现错误。已记录,待查”

    或类似的东西。其他任何东西对最终用户来说都太过分了,而且无济于事,反而会导致混乱和混乱。或者,如果您将错误提交到错误跟踪系统,您还可以显示参考编号/跟踪编号 - 但即使这样通常也无济于事。

    最多,您可能想单独挑出“您无权查看此页面”错误并针对这些错误提供另一条消息 - 但我不会走得太远。

    您可以呈现的是一个文本框,允许用户描述他正在做什么导致错误,并通过电子邮件将其提交给您。然而,根据我们的经验,只有不到 5% 的用户真正使用了该功能。

    确实,您需要做的是在后台将错误及其所有信息(消息、堆栈跟踪等)记录到数据库表中或供您分析。

    【讨论】:

      【解决方案2】:

      您在这些页面上包含哪些类型的措辞?

      足以确保用户认为错误的发生不是他们的错,开发团队将尽快调查此事,如果他们有任何疑虑,这里是与我们联系的方法。

      您向最终用户显示什么样的信息?

      只是上面的文字 - 有些网站会因为错误页面而变得可爱(这很好),但我从来没有真正认为这是必要的。

      您会记录哪些信息?

      尽可能!任何系统数据,例如个人资料信息(电子邮件、用户名、IP 地址等)、将他们带到错误页面的错误消息、他们遇到错误时所在的页面、错误发生的时间和日期...

      【讨论】:

        【解决方案3】:

        一些我永远不会、永远不会展示的东西:

        1. 隐藏 SQL 语句

        2. 隐藏默认 SQL 错误信息;特别是在“MySQL 数据库消失”的情况下,因为它会转储连接中使用的密码和用户 ID。

        出现错误时对用户有用的信息包括错误类型、错误代码以及如果可能的话,错误发生的原因。

        至于日志信息,我会在 PHP 中记录任何更新和任何可以在以后取消或修改的事务。这对于某些事务状态发生变化并且可能被其他各种管理员修改的软件很重要。

        【讨论】:

          【解决方案4】:

          嗯,这些家伙回答了大部分(子)问题。这是我的贡献:

          3.您记录什么信息?
          @:任何可以帮助您找到错误原因的方法,以便您可以修复它们或对它们采取一些措施。理想情况下,还有关于错误发生方式的上下文,以便您可以复制它以进行测试/调试。

          【讨论】:

            【解决方案5】:

            我喜欢 firefox 版本的 errorPage,当他们给你“糟糕,出了点问题”,然后花 4 段时间道歉...... 最后,您可以通过电子邮件将错误发​​送给他们,这样他们就可以无所事事了。

            【讨论】:

              【解决方案6】:

              使用友好的对话语言道歉并解释出现问题。这不是他们的错(即使是)——让他们放心。告诉他们,网站运营商已收到通知,将调查问题,并尽快解决问题。

              为他们提供一个可以去的地方,例如,如果他们登陆了一个缺失的页面,然后建议一些具有相关内容的类似页面,只需将他们引回主页 - 不要让他们原地不动。

              您可能还想提供故障 ID 之类的信息,因此如果他们就错误与您联系,您可以将其与您的日志进行核对。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-03-31
                • 1970-01-01
                • 2012-02-02
                • 2011-04-27
                • 2010-10-21
                相关资源
                最近更新 更多