title: Why a thread is aborted in ASP.NET MVC (again)?
body: <p>Here is what I do in a controller action:</p>
  
  <ol>
  <li>create and start a new Thread that does a relatively long processing task (~30 seconds on average, but might be several minutes)</li>
  <li>immediately return the page response so the user knows processing has started (trivially, a Json with a task ID for polling purposes).</li>
  </ol>
  
  <p>At some random point, ThreadAbortException is thrown, so the async task does not complete. The exception is not thrown every time, it just happens randomly roughly 25% of the times.</p>
  
  <p>Points to note:</p>
  
  <ul>
  <li>I'm not calling Response.End or Response.Redirect - there isn't even a request running when the exception is thrown</li>
  <li>I tried using ThreadPool and I got the same behavior</li>
  <li>I know running threads in ASP.NET has several caveats but I don't care right now</li>
  </ul>
  
  <p>Any suggestion?</p>