【问题标题】:System.NullReferenceException only in Release BuildSystem.NullReferenceException 仅在发布版本中
【发布时间】:2012-09-27 06:00:13
【问题描述】:

我收到“System.NullReferenceException:对象引用未设置为对象实例”。启动 Web 应用程序的发布版本时出错。它告诉我进行调试构建以获取更多信息,但是当我启动调试构建时,错误不再发生。如果没有调试版本中大多数错误给出的行号的帮助,(据我所知)很难确定这个模糊错误的原因。

谁能指出我正确的方向来缩小此异常的原因?

谢谢。

【问题讨论】:

标签: c# .net build release nullreferenceexception


【解决方案1】:

即使您在发布模式下构建,也可以在堆栈跟踪中获取文件名和行号。例如,请参阅 Display lines number in Stack Trace for .NET assembly in Release modeIs stacktrace information available in .NET release mode build?

总的来说,我认为您应该避免在 Debug 与 Release 模式下引入不同的程序行为(但也许您不是故意引入的?)。

【讨论】:

    【解决方案2】:

    为了快速解决您的问题(如果您没有时间重写代码),请查看您发布应用程序的机器上的事件日志。您很可能只是缺少一些 dll。

    作为一个长期解决方案,我认为您可以从向您的应用程序(企业库、log4net 等,甚至您自己的记录器)添加一些日志记录功能开始。打印完整的堆栈跟踪是非常宝贵的帮助来源,尤其是当您在发布版本中包含 .pdb 文件时。这将允许您执行的代码准确判断哪一行引发了异常。

    希望这会有所帮助, 彼得

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      • 2017-01-08
      • 2014-04-06
      • 2015-02-16
      • 1970-01-01
      相关资源
      最近更新 更多