如何在生产环境中调试c# windows窗体应用程序

本文关键字:windows 窗体 应用程序 调试 生产环境 | 更新日期: 2023-09-27 18:17:34

我开发了一个小应用程序,用于在本地计算机和在线web服务之间同步数据。

在测试环境中,使用visual studio 2012 express调试模式,我无法重现导致应用程序崩溃的错误。

我已经尝试通过将数据写入.txt文件来手动记录活动,以给我一个参考框架,但我仍然无法确定这个错误发生的地方。

是否有任何工具可用于调试此应用程序,而在生产模式?

如何在生产环境中调试c# windows窗体应用程序

如果您可以在远程生产机器上启动进程,那么在这种情况下最简单的事情就是使用VS远程调试器

这样,你将有一个完整的调试上下文,其中包含比简单的日志更多的信息;调试体验(几乎)与本地调试相同。

很遗憾这个工具并不广为人知,因为它确实可以为你节省几个小时甚至几天的时间来处理棘手的bug。

尝试在AppDomain中记录stacktrace。UnhandledException事件处理程序。

此外,它可以跟踪所有函数调用利用面向方面的编程与PostSharp。

我们使用Microsoft Enterprise Library记录并通过电子邮件将堆栈跟踪发送给我们,任何时候发生未处理的异常。

只需使用NBug库,它可以捕获未处理的应用程序,并将错误报告发送到您指定的电子邮件地址。

是的,问题可能与环境或软件版本有关,您的调试与生产不一样。因此,理想情况下,您需要的是根据相同的源代码版本和调试符号文件调试实时版本。

网上有很多关于如何做到这一点的文章,比如这篇和这篇。我曾经读过一篇文章,向你展示了如何不仅使用TFS正确设置符号服务器,而且如何调试生产exe和VS将从符号服务器和TFS的源代码版本加载该版本的正确符号…可惜我找不到。

远程调试和日志记录都是非常重要的工具,但是当你在你现在的地方-正确版本的调试符号和源代码可能会帮助你更多。