Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 空引用异常-没有可用的源_.net_Vb.net_Garbage Collection_Visual Studio 2003 - Fatal编程技术网

.net 空引用异常-没有可用的源

.net 空引用异常-没有可用的源,.net,vb.net,garbage-collection,visual-studio-2003,.net,Vb.net,Garbage Collection,Visual Studio 2003,我正在使用Visual Studio 2003和.NET 1.1(Visual basic)-是的,它是一个旧系统,无法升级。该程序中有一个工作流程,运行25分钟即可完成(基本上是使用活动报告打印支票)。现在,对于其中一个客户机,进程在抛出空引用异常20分钟或更长时间后突然失败。 我把错误框放在下面- 当我点击break时,它说在这个位置找不到来源 现在的问题是,这个过程运行了100个雇员,调用了10个函数,我不能一直为每个雇员设置断点进行调试(这只需要几个小时)来查看抛出空错误的位置。我也

我正在使用Visual Studio 2003和.NET 1.1(Visual basic)-是的,它是一个旧系统,无法升级。该程序中有一个工作流程,运行25分钟即可完成(基本上是使用活动报告打印支票)。现在,对于其中一个客户机,进程在抛出空引用异常20分钟或更长时间后突然失败。 我把错误框放在下面-

当我点击break时,它说在这个位置找不到来源

现在的问题是,这个过程运行了100个雇员,调用了10个函数,我不能一直为每个雇员设置断点进行调试(这只需要几个小时)来查看抛出空错误的位置。我也不能在try-catch或null-check中包装所有对象(这只是涉及太多的文件和函数),我需要知道它在哪里被破坏

我还监视了TaskManager上的内存,以查看aspnet是否占用了太多内存,但似乎总是低于120MB。我也尝试了GC.Collect(),但没有任何帮助

如果有人能指导我如何调试这个问题,我将不胜感激


谢谢

尝试捕获应用程序域级别的异常,并记录堆栈跟踪以查看其发生位置。仅当发生异常的位置的PDB可用时,才能显示源

你可以找到更多信息

编辑(更多信息): 它基本上允许您捕获未在一个方法中处理的每个异常。尝试将异常消息及其堆栈跟踪写入日志文件。最好递归地遍历InnerException,以真正找到错误的根源。
找到它后,您可以手动调试它,因为您知道在哪里设置断点。

尝试捕获应用程序域级别的异常,并记录堆栈跟踪以查看它发生的位置。仅当发生异常的位置的PDB可用时,才能显示源

你可以找到更多信息

编辑(更多信息): 它基本上允许您捕获未在一个方法中处理的每个异常。尝试将异常消息及其堆栈跟踪写入日志文件。最好递归地遍历InnerException,以真正找到错误的根源。
找到它后,您可以手动调试它,因为您知道在哪里设置断点。

添加一些老式的控制台。WriteLine(“我正在处理Employee nr:+empNo”)可以精确指出异常出现的位置。现在可以在该值上设置条件断点并启动调试会话。此外,有时,只需查看相关的数据库表就可以发现问题(某些字段为空)

添加一些老式的控制台。WriteLine(“我正在处理Employee nr:+empNo”)以确定从何处获得异常。现在可以在该值上设置条件断点并启动调试会话。此外,有时,只要查看相关的数据库表就会发现问题(某些字段为空)

谢谢Steve!我完全忘了添加控制台..WriteLine!谢谢史蒂夫!我完全忘了添加控制台..WriteLine!谢谢,简。这真的很有趣-我要试一试。谢谢,简。这真的很有趣-我要试一试。