我在一个非常大的ASP.NET应用程序中遇到内存泄漏问题。使用大约24小时后(有时会更多),抛出OutOfMemory异常。因此,我试图了解托管内存在.NET中的工作原理。 ASP.NET应用程序何时抛出OutOfMemory异常?服务器有很多RAM,当抛出OutOfMemory异常时总是有足够的内存。我理解虚拟内存和物理内存之间的区别。在抛出OutOfMemory异常之前,W3WP进程需要消耗多少内存?是否有某处设置,例如在Machine.Config文件中? ASP.NET进程永远不会被回收。
答案 0 :(得分:0)
除了上面的评论:检查您的主要资源使用情况,并在使用结束时确保使用.Dispose()来释放它。
对于内存使用情况,请转到IIS管理器,打开树并导航到应用程序池。编辑网站使用的池中的高级属性,并在那里检查/设置设置。
答案 1 :(得分:0)
我使用过ANTS内存分析器。这将帮助您找到代码导致破损泄漏的地方。您还可以在perfmon工具中创建用户定义的性能监视器。
这对我有用。如果您需要更多帮助,请告诉我