title: ASP.NET ApplicationInstance.CompleteRequest not working?
body: <p>HttpContext.Current.ApplicationInstance.CompleteRequest appears to be doing nothing.  What am I missing?</p>
  
  <p>For example, despite the fact that CompleteRequest is called during every interesting event, all of the below events still run on a simple test page. </p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.HtmlControls;
  using System.Web.UI.WebControls;
  
  namespace LifeCycle
  {
      public partial class _Default_NoMasterPage : System.Web.UI.Page
      {
          private int count = 0;
  
          protected override void OnInit(EventArgs e)
          {
              nextLabel("InitBeforeBase");
              base.OnInit(e);
              HttpContext.Current.ApplicationInstance.CompleteRequest();
              nextLabel("Init");
          }
  
          protected override void OnInitComplete(EventArgs e)
          {
              nextLabel("InitCompleteBeforeBase");
              base.OnInitComplete(e);
              HttpContext.Current.ApplicationInstance.CompleteRequest();
              nextLabel("InitComplete");
          }
  
          protected override void OnLoad(EventArgs e)
          {
              nextLabel("OnLoadBeforeBase");
              base.OnLoad(e);
              HttpContext.Current.ApplicationInstance.CompleteRequest();
              nextLabel("OnLoad");
          }
  
          protected override void OnLoadComplete(EventArgs e)
          {
              nextLabel("OnLoadCompleteBeforeBase");
              base.OnLoadComplete(e);
              HttpContext.Current.ApplicationInstance.CompleteRequest();
              nextLabel("OnLoadComplete");
          }
  
          protected override void OnPreInit(EventArgs e)
          {
              // can't add a control to the page during OnPreInit as the other page control doesn't exist yet.
              base.OnPreInit(e);
          }
  
          private void nextLabel(string eventName)
          {
              string lbl = "" + ++count + " " + eventName + " at " + DateTime.Now.ToLongTimeString() + "";
              System.Web.UI.HtmlControls.HtmlGenericControl c = new HtmlGenericControl("div");
              c.InnerText = lbl;
              Page.Controls.Add(c);
          }
      }
  }
  </code></pre>