有人可以给我一步一步的说明或以正确的顺序指向正确的参考吗
这样我就可以确定这个问题的根本原因?
您可以获取进程的内存转储并查看 WinDbg。它至少会给你一个异常列表和线程的当前状态。这样做会回收该过程。也可以从 Visual Studio 以远程调试模式连接到 QA 风格的机器。但是我没有这样做,它会在您调试时挂起所有其他请求。
如果 w3wp 在本地运行,可以在任务管理器中右键单击该进程,选择调试,在 WinDbg 中查看。否则,您希望在生产/测试机器上使用 Debug Diag 之类的东西来创建完整的用户转储。请参阅: http: //msdnrss.thecoderblogs.com/2008/05/21/debugdiag-11-or-windbg-which-one-should-i-use-and-how-do-i-gather-memory-dumps/
我在二月份就做了这一切,从那以后就不需要了。由于获取 WinDbg 的符号和配置环境变量的存储位置等,整个步骤实际上有点痛苦。
有关为 ASP.NET 检查设置 WinDbg 的信息,请参阅本文:http: //support.microsoft.com/kb/892277
w3wp.exe 是与 ISS 中的应用程序池相关联的进程。如果您有多个应用程序池,您将运行多个 w3wp.exe 实例。
欲了解更多信息,请阅读此
w3wp.exe 会因多种原因消耗大量内存。
如果您怀疑前两个是问题,您将需要扩展系统(添加额外的服务器等)
随着时间的推移,内存泄漏会导致内存使用量逐渐增加。
如果您怀疑内存泄漏,可以考虑采取以下措施。