Use HttpApplication.CompleteRequest Instead of Response.End

Date Published: 06 April 2009

Use HttpApplication.CompleteRequest Instead of Response.End

HttpApplication.CompleteRequest is preferable to use for aborting a request in an ASP.NET application over Response.End, because it has better performance characteristics. If you’re using Response.End, you’ve probably at one time or another encountered the ThreadAbortException that goes along with it.

The behavior of CompleteRequest changed with 2.0, as Rick describes here. However, the reason why you’ll most likely want to call CompleteRequest rather than Response.End is that, while it still short-circuits the ASP.NET pipeline (jumping immediately to the EndRequest event), it does so without throwing a ThreadAbortException.

(thanks to Stefan Schackow for this tip)

Steve Smith

About Ardalis

Software Architect

Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.