无法在调试诊断工具中监视iisprocess是否存在泄漏

时间:2010-10-06 11:37:34

标签: asp.net iis monitoring

我有一个消耗大量内存的ASP.NET应用程序。因此,我想使用调试诊断工具尝试搜索是否存在泄漏或其他内容。

在进程选项卡上的DebugDiag中,我右键单击w3wp.exe进程,我得到的唯一选项是:

  

终止流程
  复制

只有在某些流程上我才能获得更多选择:

  

监控泄漏
  创建完整的userdump

这是为什么?它与工人流程的身份有关吗?

有人可以帮我解决这个问题,以便调试我感兴趣的工作流程吗?

1 个答案:

答案 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位的功能   版。虽然没有   直接你可以索取一份副本   他们的支持团队,请参阅以下内容   链接了解更多信息:

     

Debug Diag 1.2 (Beta)