views:

40

answers:

1

I have an ASP.NET application that consumes a lot of memory. Therefore I want to use the Debug Diagnostic Tool to try to search if there might be a leak or something else.

In DebugDiag on the process tab I right click the w3wp.exe process and the only options I get are:

Terminate process
Copy

Only on some processes I get more options:

Monitor for leaks
Create full userdump

Why is this? Has it something to do with the identity of the worker process?

Can someone help me solve this so I can debug the worker process I am interested in?

A: 

Assuming you are are using DebugDiag 1.1. You need to use the correct version that matches the process architecture (there are 32bit and 64bit versions).

To check whether your application pool's worker process is 32bit or 64bit go to:

Control Panel -> Administrative Tools -> Internet Information Services (IIS) Manager

Don't open Internet Information Services (IIS) 6.0 Manager.

Open the Advanced Settings for your website (the link is on the Actions pane to the left). Note the Application Pool name then click Cancel.

Click on the Application Pools node on the left hand navigation tree pane and right click on the Application Pool noted above, select Advanced Settings.

If the application pool is 32bit then the setting Enable 32-bit Applications will be set to true, otherwise if false the pool will run in 64bit mode.

If the application pool is running in 64bit mode then you need to download and install the 64bit version of DebugDiag.

When you run 32 bit DebugDiag the column "32-Bit" on the processes tab will have "Yes" to indicate that a process is 32bit. Only these processes will have context menu options to 'Monitor For Leaks' and so on.

For more information see Tess Ferrandez's blog:

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

If you can reproduce your suspected memory leak in 32bit mode then just switch the application pool to 32 bit and use the 32bit version of DebugDiag. Unfortunately both the 32bit and 64bit versions can't co-reside on the same machine.

Update:

DebugDiag 1.1 x64 only supports the analysis features. There is a new version in beta that does permit all the functionality of the 32bit version. Although not available directly you can request a copy from their support team, see the following link for more info:

Debug Diag 1.2 (Beta)

Kev
John
@John - see my updated answer. I emailed the team mentioned in that blog article and they got back to me within a few minutes with a link to the download.
Kev
Thank you very much Kev. It's working great. Now I just need to learn reading these reports but that's another problem =).
John