For Response.End, call the HttpContext.Current.ApplicationInstance.CompleteRequest method instead of Response.End to bypass the code execution to the Application_EndRequest event. For Response.Redirect, use an overload, Response.Redirect(String url, bool endResponse) that passes false for the endResponse parameter to suppress the internal call to Response.End. For example:The problem is, HttpContext.Current.ApplicationInstance.CompleteRequest doesn't actually stop the execution. The rest of code (same layer or caller layer( after this method call will be still been executed, which I don't want to.