> try > { > HttpResponse response = HttpContext.Current.Response; > Page p = HttpContext.Current.Handler as Page; > > if (p == null) throw new Exception("Page is not an object"); > > string resolvedUrl = p.ResolveUrl(url); > > response.Buffer = true; > response.Status = "302 Object moved"; > response.AddHeader("Location", resolvedUrl); > response.Write("<HTML><Head>"); > response.Write("<META HTTP-EQUIV=Refresh CONTENT=\"2;URL=" + resolvedUrl + "\">"); > response.Write("<Script>window.location='" + resolvedUrl + "';</Script>"); > response.Write("</Head>"); > response.Write("</HTML>"); > > try > { > response.End(); > > //-- Remarked as the code after this method will be still executed. > //-- We always want to stop any execution after "redirect" > //HttpContext.Current.ApplicationInstance.CompleteRequest(); > } > catch > { > //-- To Prevent warning msg logged in event viewer > } > } > catch (ThreadAbortException exc) > { > // This should be first catch block i.e. before generic Exception > // This Catch block is to absorb exception thrown by Response.End > } > catch (Exception exc) > { > // Write actual error handling code here > } >