应该/不应该在Web应用程序中显示错误页面的哪些信息?

时间:2009-12-09 06:05:20

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

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

  1. 您在这些页面上包含哪种废弃物?

  2. 您向最终用户显示哪些信息?

  3. 您记录了哪些信息?

  4. 我不认为这个问题对任何Web应用程序框架都是特定的,所以每个人都被邀请参加:)

6 个答案:

答案 0 :(得分:2)

致用户:

“抱歉,发生错误。已记录,将会查看”

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

最多,您可能希望单独列出“您没有权限查看此页面”错误,并为这些错误提供另一条消息 - 但我不会对此过于苛刻。

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

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

答案 1 :(得分:0)

您在这些页面上包含哪种废弃物?

  

足以确保用户错误发生在他们的错误之下,开发团队将很快调查此事,如果他们以任何方式担心,这里是如何与我们联系。

您向最终用户显示哪些信息?

  

上面的文字 - 有些网站在错误页面上很可爱(很好),但我从未真正发现这是必要的。

您记录了哪些信息?

  

尽可能多!任何系统数据,例如配置文件信息(电子邮件,用户名,IP地址等),将它们带到错误页面的错误消息,遇到错误时它们所处的页面,错误发生的时间和日期...

答案 2 :(得分:0)

我永远不会表现出的一些事情:

  1. 隐藏SQL语句

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

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

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

我喜欢firefox版本的errorPage,当他们给你“哎呀,出错了”然后花了4段道歉...... 最后,您可以将错误通过电子邮件发送给他们,这样他们就无法做任何事情。

答案 5 :(得分:0)

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

将它们提供给某个地方,例如,如果它们登陆了丢失的页面,然后建议一些具有相关内容的类似页面,只需将它们返回主页 - 不要让它们停止。

您可能还希望提供类似错误ID的内容,因此如果他们就错误与您联系,那么您可以将其与日志进行协调。