我有一个消耗大量内存的ASP.NET应用程序。因此,我想使用调试诊断工具尝试搜索是否存在泄漏或其他内容。
在进程选项卡上的DebugDiag中,我右键单击w3wp.exe
进程,我得到的唯一选项是:
终止流程
复制
只有在某些流程上我才能获得更多选择:
监控泄漏
创建完整的userdump
这是为什么?它与工人流程的身份有关吗?
有人可以帮我解决这个问题,以便调试我感兴趣的工作流程吗?
答案 0 :(得分:0)
假设您正在使用DebugDiag 1.1。您需要使用与流程体系结构匹配的正确版本(有32位和64位版本)。
要检查应用程序池的工作进程是32位还是64位,请转到:
Control Panel -> Administrative Tools -> Internet Information Services (IIS) Manager
请勿打开Internet Information Services (IIS) 6.0 Manager
。
打开您网站的Advanced Settings
(该链接位于左侧的“操作”窗格中)。请注意Application Pool
名称,然后点击取消。
单击左侧导航树窗格中的Application Pools
节点,右键单击上面提到的应用程序池,选择Advanced Settings
。
如果应用程序池为32位,则设置Enable 32-bit Applications
将设置为true,否则如果为false,则池将以64位模式运行。
如果应用程序池以64位模式运行,则需要下载并安装64位版本的DebugDiag。
当您运行32位DebugDiag时,进程选项卡上的“32位”列将显示“是”以指示进程为32位。只有这些流程才会有“Monitor For Leaks”等上下文菜单选项。
有关更多信息,请参阅Tess Ferrandez的博客:
Capturing memory dumps for 32-bit processes on an x64 machine
如果您可以在32位模式下重现可疑的内存泄漏,那么只需将应用程序池切换到32位并使用32位版本的DebugDiag。不幸的是,32位和64位版本都无法共存于同一台机器上。
<强>更新强>
DebugDiag 1.1 x64仅支持 分析功能。有一个新的 测试版允许所有版本 32位的功能 版。虽然没有 直接你可以索取一份副本 他们的支持团队,请参阅以下内容 链接了解更多信息: