3

(Not sure if this is an IIS problem or not, so if this is better suited for SO I'll happily move it...)

We have an IIS-hosted application that is sporadically dying, and the event logs claim that the application pool is reporting itself as unhealthy due to deadlocks. I'm attempting to get a crash dump of the process as it's dying, to see if we can pinpoint the problem.

I have following this Microsoft KB Article #828222, which says there is an option on the application pool to enable "Orphaned Worker Process" analysis. We've followed those steps exactly -- installed the debugger tools, enabled the Orphaned Worker Process option for the application pool, and set up a batch file to run when it happens:

adsutil.vbs SET W3SVC/AppPools/MyAppPool/OrphanWorkerProcess TRUE
adsutil.vbs SET W3SVC/AppPools/MyAppPool/OrphanActionExe "c:\debug\dump.cmd"
adsutil.vbs SET W3SVC/AppPools/MyAppPool/OrphanActionParams "%1%" 

The debugdump.cmd essentially just runs cdb on the PID of the dying process (after computing a unique file name):

c:\debug\cdb.exe -c ".dump /o /ma %FILENAME%;q" -p %1

The IIS side of the configuration seems to be correct -- it does try to run the batch file on the dying process. But it doesn't actually do anything, because according to cdb:

Cannot debug pid 3236, NTSTATUS 0xC000010A
    "An attempt was made to access an exiting process."

The whole point of this option, I assumed, was that IIS would not kill the process before the debugger had a chance to dump it; did I miss something in the configuration?

KutuluMike
  • 131
  • 3

0 Answers0