C# 如何在ASP.NET中调试OutOfMemoryException?

C# 如何在ASP.NET中调试OutOfMemoryException?,c#,asp.net,debugging,C#,Asp.net,Debugging,我正在读取一个.opml文件并对其进行解析,以便为我订阅的每个rss提要生成一个文章列表,从而添加到这个.opml文件中 有时,在VisualStudio上按play(Run)时,我会收到一个错误(不是异常),说明OutOfMemoryException。这是在应用程序甚至可以运行(但已经编译)之前。有问题的页面(错误出现在输出窗口中的相关页面)是RSS阅读器页面,它调用方法进行解析 如何完全修复此错误?这个错误只是偶尔出现,所以很难重现。一些信息指出了我的开发环境的问题,而不是站点或Visua

我正在读取一个.opml文件并对其进行解析,以便为我订阅的每个rss提要生成一个文章列表,从而添加到这个.opml文件中

有时,在VisualStudio上按play(Run)时,我会收到一个错误(不是异常),说明OutOfMemoryException。这是在应用程序甚至可以运行(但已经编译)之前。有问题的页面(错误出现在输出窗口中的相关页面)是RSS阅读器页面,它调用方法进行解析

如何完全修复此错误?这个错误只是偶尔出现,所以很难重现。一些信息指出了我的开发环境的问题,而不是站点或Visual Studio(这可能意味着另一组变量处于活动状态)。此异常是否与潜在内存泄漏有关(可能是警告)?内存分析会有帮助吗(我有一个内存分析程序)


谢谢

如果我理解正确,VisualStudio本身是OOM,并且报告它无法启动调试过程。devenv.exe进程是否占用大量内存?如果您在64位操作系统上使用VS 2005,您可以让devenv.exe使用4GB,或许可以解决您的问题


如果不是VS本身,即OOM,则需要定位问题。罪魁祸首应该是任务列表中显示的具有较大VM大小的任务。在调试器下运行VS本身可能会有所帮助。此外,有时系统错误(如内核资源耗尽)会转化为OOM错误。

您是如何解析此错误的?您可以通过多种方式耗尽内存,例如在紧密循环中执行此操作:

for(....)
{
  //Creates immutable strings faster than they can be garbage collected 
  nextXMLPart = nextXMLPart + " " + something;
}
档案有多大?如果您正在将整个文件读入内存,则可以执行此操作

不管怎样,我都会开始研究任何重复很多的循环。如果这不起作用,启动任务人并在代码中添加断点。当内存使用量开始激增时,注意应用程序的位置