2010-10-06 64 views
0

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

在DebugDiag资料的过程选项卡上我右键单击w3wp.exe过程的唯一选择我得到的是:

终止进程
复制

仅适用于某些过程,我得到更多的选择:

监测泄漏
创建完全使用rdump

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

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

+0

什么IIS的版本?这是32位还是64位? – Kev 2010-10-06 12:07:08

+0

这是一个64位的Windows 7.在Windows功能我已经检查了IIS 6管理兼容性。如果我在IIS管理器中点击,我可以看到它是版本6.1 – John 2010-10-06 12:23:19

回答

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(该链接位于左侧的操作窗格中)。请注意0​​名称,然后单击取消。

单击左侧导航树窗格上的Application Pools节点并右键单击上面提到的应用程序池,选择Advanced Settings

如果应用程序池是32位,那么设置Enable 32-bit Applications将设置为true,否则如果为false,则池将以64位模式运行。

如果应用程序池在64位模式下运行,则需要下载并安装64位版本的DebugDiag。

当您运行32位DebugDiag进程选项卡上的列“32位”将具有“是”以指示进程是32位。只有这些进程将具有上下文菜单选项才能“监视泄漏”等。

欲了解更多信息,请参阅苔丝Ferrandez的博客:

Capturing memory dumps for 32-bit processes on an x64 machine

如果你能重现你怀疑内存泄漏在32位模式则只需切换应用程序池为32位,并使用32位版本的DebugDiag。不幸的是,32位和64位版本不能共同驻留在同一台机器上。

更新:

DebugDiag资料1.1仅x64支持 分析功能。 beta版中有一个新的 版本,确实允许所有的 32位版本的功能。虽然无法直接 您可以要求从 他们的支持团队副本,请访问以下链接 更多信息:

Debug Diag 1.2 (Beta)

+0

首先,我从此页下载了64位版本: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=28bd5941-c458- 46f1-b24d-f60151d875a3&DisplayLang = en 但是这个版本是一个Analysis Only版本,我在GUI中只有分析选项卡而不是其他两个。这是我下载32位版本的原因,因为我知道它应该可以在64位机器上工作。是否有可以调试进程的64位版本? – John 2010-10-06 13:28:55

+0

@John - 查看我更新的答案。我通过电子邮件向该博客文章中提到的团队发送电子邮件,他们在几分钟内回复给我并提供了下载链接。 – Kev 2010-10-06 14:28:12

+0

非常感谢Kev。它运作良好。现在我只需要学习阅读这些报告,但这是另一个问题=)。 – John 2010-10-08 06:28:04