【问题标题】:ASP.NET memory leakASP.NET 内存泄漏
【发布时间】:2012-06-17 15:55:51
【问题描述】:

我在一个非常大的 ASP.NET 应用程序中遇到内存泄漏问题。使用大约 24 小时(有时更多)后,会引发 OutOfMemory 异常。因此,我试图了解托管内存在 .NET 中的工作原理。 ASP.NET 应用程序何时抛出 OutOfMemory 异常?服务器有很多 RAM,当抛出 OutOfMemory 异常时总是有足够的内存。我了解虚拟内存和物理内存之间的区别。在抛出 OutOfMemory 异常之前,W3WP 进程必须消耗多少内存?某处是否有设置,例如在 Machine.Config 文件中? ASP.NET 进程永远不会被回收。

【问题讨论】:

  • 您的应用程序池定义了最大内存以及达到限制时触发的操作。因此,在那里寻找您的财产以采取短期行动。一般来说,您需要检查您初始化的代码并释放您使用的所有资源,以防止内存使用量永久增长。

标签: asp.net vb.net


【解决方案1】:

除了我上面的评论:检查您的主要资源使用情况并在使用结束时确保使用 .Dispose() 释放它。

有关内存使用情况,请转到 IIS 管理器,打开树并导航到您的应用程序池。从您的网站使用的池中编辑高级属性并在那里检查/设置设置。

【讨论】:

    【解决方案2】:

    我使用了 ANTS 内存分析器。这将帮助您找到代码导致大量泄漏的地方。您还可以在 perfmon 工具中创建用户定义的性能监视器。

    这对我有用。如果您需要更多帮助,请告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-06
      • 2011-07-13
      • 2018-01-11
      • 1970-01-01
      • 2019-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多