加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

为一个用户生成ASP.NET webapp错误,无法在开发中重现 – 如何调

发布时间:2020-12-16 09:34:52 所属栏目:asp.Net 来源:网络整理
导读:我继承了面向asp.net Web应用程序的客户,客户可以将文件上传到我们的文件服务器.除一个人外,它适用于所有用户.两周前,她试图上传文件并收到以下错误: Object reference not set to an instance of an object. 该错误继续描述哪行代码导致错误.但是,这是在我
我继承了面向asp.net Web应用程序的客户,客户可以将文件上传到我们的文件服务器.除一个人外,它适用于所有用户.两周前,她试图上传文件并收到以下错误:

Object reference not set to an instance of an object.

该错误继续描述哪行代码导致错误.但是,这是在我们的生产,外部环境和我关闭调试.所以这个信息,我假设是或多或少的下铺(错误报告的代码行真的对我来说没有意义,因为它是错误的原因).

我知道正在访问的内容为null,但我无法在我的开发环境中重现该错误,并且它对我们的其余用户群也可以正常工作.同一个用户在两周前遇到了错误,然后昨天又用另一个文件再次尝试并收到了同样的错误.

我知道这一切听起来都很模糊,但我想我的问题是,是否有人对如何跟踪用户执行错误有任何好的想法,这样我才能准确了解哪一行代码真的导致它?就像我说的那样,我无法在开发,生产,内部,外部重现错误,也没有其他用户遇到过问题.我唯一的想法是向面向客户的生产站点发布调试版本,但我真的不想这样做.谢谢!

解决方法

>您确定您在异常中获得的信息是错误的吗?做出这个假设是如此容易,我们都已经做到了,只有当你花了一点时间看它时才被证明是错误的.
>确保已部署PDB(调试符号).即使站点是在“Release”中构建的,您仍然可以将它们推出,而不是“Debug”,以确保在堆栈跟踪中获得适当的行号.

>确保部署匹配的.PDB文件,不匹配的文件将没有任何用处.
>将.PDB文件与版本控制一起保存在版本控制之下,如果你同时拥有这两个版本,它会更容易测试问题,以及特定版本的代码(即处理编译后的输出和.pdb)资源).

>在日志代码中添加一些额外的工具,使用类似log4net的东西(不要编写自己的日志系统 – 其他人比你更好,或者我!)在遇到的区域周围记录尽可能多的状态问题.

>使其可以根据配置设置打开或关闭日志记录. log4net可以很容易地做到这一点.>确保您的日志记录代码在使用它们之前检查它检查的所有对象是否为null,因此您最终不会因日志记录代码而导致NullReferenceException.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读