title: When an ASP.NET System.Web.HttpResponse.End() is called, the current thread is aborted?
body: <p>when a System.Web.HttpResponse.End() is called a System.Thread.Abort is being fired, which i'm guessing is (or fires) an exception? I've got some logging and this is being listed in the log file...</p>
  
  <p>A first chance </p>
  
  <pre><code>exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll
  12/14/2008 01:09:31::
  Error in Path :/authenticate
  Raw Url :/authenticate
  Message :Thread was being aborted.
  Source :mscorlib
  Stack Trace :   at System.Threading.Thread.AbortInternal()
     at System.Threading.Thread.Abort(Object stateInfo)
     at System.Web.HttpResponse.End()
     at DotNetOpenId.Response.Send()
     at DotNetOpenId.RelyingParty.AuthenticationRequest.RedirectToProvider()
     at MyProject.Services.Authentication.OpenIdAuthenticationService.GetOpenIdPersonaDetails(Uri serviceUri) in C:\Users\Pure Krome\Documents\Visual Studio 2008\Projects\MyProject\Projects\Services\Authentication\OpenIdAuthenticationService.cs:line 108
     at MyProject.Mvc.Controllers.AuthenticationController.Authenticate() in C:\Users\Pure Krome\Documents\Visual Studio 2008\Projects\MyProject\Projects\MVC Application\Controllers\AuthenticationController.cs:line 69
  TargetSite :Void AbortInternal()
  A first chance exception of type 'System.Threading.ThreadAbortException' occurred in Ackbar.Mvc.DLL
  An exception of type 'System.Threading.ThreadAbortException' occurred in Ackbar.Mvc.DLL but was not handled in user code
  </code></pre>
  
  <p>Is this normal behavior and is it possible to gracefully abort instead of (what looks like) a sudden abrupt abort?</p>
  
  <h2>Update</h2>
  
  <p>So far it the common census that it's <a href="http://msdn.microsoft.com/en-us/library/system.web.httpresponse.end.aspx" rel="noreferrer">by design</a>. So i'm wondering if it's possible we could take this question and see if we could tweak the code to make it not feel like we're ending the thread <em>prematurely</em> and gracefully exit ... Possible? Code examples?</p>