title: Diagnosing "Thread was being aborted." in ASP.NET
body: <p>I am receiving a &quot;Thread was being aborted.&quot; in the stack trace of my ASP.NET application. I am attempting to use the WinDbg technique described here to diagnose:
  <a href="http://blogs.msdn.com/b/asiatech/archive/2012/06/21/how-to-troubleshoot-httpexception-request-timed-out-asp-net-4-0-64-bit.aspx" rel="nofollow noreferrer">http://blogs.msdn.com/b/asiatech/archive/2012/06/21/how-to-troubleshoot-httpexception-request-timed-out-asp-net-4-0-64-bit.aspx</a>
  Right now I am just trying to catch this in the sample asp.net application provided. I can get the asp.net application to timeout but I can't get the dump described in the article to generate. I think I need help from a WinDbg person to understand where I am going wrong. I am including the WinDbg entries. My output is a bit different but I can't tell which address to use in the <code>aspnet_timeout.cfg</code> file described.</p>
  <pre><code>0:038&gt; .symfix
  0:038&gt; .loadby sos clr
  0:038&gt; !name2ee system.web.dll System.Web.RequestTimeoutManager+RequestTimeoutEntry.TimeoutIfNeeded
  Module:      59201000
  Assembly:    System.Web.dll
  Token:       0600699b
  MethodDesc:  592926e4
  Name:        System.Web.RequestTimeoutManager+RequestTimeoutEntry.TimeoutIfNeeded(System.DateTime)
  JITTED Code Address: 593f4200
  0:038&gt; !U 593f4200
  preJIT generated code
  System.Web.RequestTimeoutManager+RequestTimeoutEntry.TimeoutIfNeeded(System.DateTime)
  Begin 593f4200, size 29. Cold region begin 59d14150, size 23
  Hot region:
  *** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Web\ccb5cc864818531ed9725d02d3d078a6\System.Web.ni.dll
  &gt;&gt;&gt; 593f4200 55              push    ebp
  593f4201 8bec            mov     ebp,esp
  593f4203 57              push    edi
  593f4204 56              push    esi
  593f4205 8bf1            mov     esi,ecx
  593f4207 8b4e10          mov     ecx,dword ptr [esi+10h]
  593f420a 8d4508          lea     eax,[ebp+8]
  593f420d ff7004          push    dword ptr [eax+4]
  593f4210 ff30            push    dword ptr [eax]
  593f4212 3909            cmp     dword ptr [ecx],ecx
  593f4214 e85f83f5ff      call    System_Web_ni+0x14c578 (5934c578) (System.Web.HttpContext.MustTimeout(System.DateTime), mdToken: 060025f7)
  593f4219 8bf8            mov     edi,eax
  593f421b 85ff            test    edi,edi
  593f421d 0f852dff9100    jne     System_Web_ni+0xb14150 (59d14150)
  593f4223 5e              pop     esi
  593f4224 5f              pop     edi
  593f4225 5d              pop     ebp
  593f4226 c20800          ret     8
  Cold region:
  59d14150 8bce            mov     ecx,esi
  59d14152 e849bb6cff      call    System_Web_ni+0x1dfca0 (593dfca0) (System.Web.RequestTimeoutManager+RequestTimeoutEntry.RemoveFromList(), mdToken: 0600699a)
  59d14157 b9508f4859      mov     ecx,offset System_Web_ni+0x288f50 (59488f50) (MT: System.Web.HttpApplication+CancelModuleException)
  59d1415c e8ef4c63ff      call    System_Web_ni+0x148e50 (59348e50) (System_Web_ni)
  59d14161 8bd0            mov     edx,eax
  59d14163 c6420401        mov     byte ptr [edx+4],1
  59d14167 8bcf            mov     ecx,edi
  59d14169 e89a0963ff      call    System_Web_ni+0x144b08 (59344b08) (System_Web_ni)
  59d1416e e9b0006eff      jmp     System_Web_ni+0x1f4223 (593f4223)
  </code></pre>
  <p>aspnet_timeout.cfg</p>
  <pre><code>&lt;ADPlus Version='2'&gt;
        &lt;!-- Configuring ADPlus to log all first chance exceptions --&gt;
        &lt;!-- Will still create full dump for any type of second chance exceptions --&gt;
    &lt;KeyWords&gt;
       &lt;keyword Name=&quot;loadbysos&quot;&gt; .loadby sos clr&lt;/keyword&gt;
       &lt;keyword Name=&quot;GetJIT&quot;&gt; !name2ee System.web.dll System.Web.RequestTimeoutManager+RequestTimeoutEntry.TimeoutIfNeeded &lt;/keyword&gt;
       &lt;keyword Name=&quot;JITAddress&quot;&gt; .foreach /pS 0n13 ( record {!name2ee System.web.dll System.Web.RequestTimeoutManager+RequestTimeoutEntry.TimeoutIfNeeded}) { r $t1= ${record}; bp $t1+0xb14150 &quot;.dump /ma /u ${AdpDumpDirEsc}\\Full Request timed out ${AdpProcName}_.dmp;g&quot;; .printf&quot;*breakpoint list*\n&quot;; bl}        &lt;/keyword&gt;
    &lt;/KeyWords&gt;
     &lt;Settings&gt;
                    &lt;Option&gt;  NoDumpOnFirst  &lt;/Option&gt;
                    &lt;RunMode&gt; CRASH &lt;/RunMode&gt;
    &lt;/Settings&gt;
    &lt;PreCommands&gt;
           &lt;DebugActions&gt; loadbysos; GetJIT; JITAddress &lt;/DebugActions&gt;
    &lt;/PreCommands&gt;
  &lt;/ADPlus&gt;
  </code></pre>