title: PerformTimerCallback is triggered on submission
body: <p>When the user submits a button in a page in my web application, that event is triggered twice. A normal submit request and after that a timer callback event is also executed and same submission occurs again. The result is, same data is inserted to database twice. I am putting my stack trace below.</p>
  
  <pre><code>[0] App_Code.DBAccess.PrintLog (System.String log) &lt;il+12, n+165&gt;   
   [1] Agents_AgentHome.DataSubmit () &lt;il+10, n+53&gt;   
   [2] Agents_AgentHome.BtnSubmitNext_Click (System.Object sender, System.EventArgs e) &lt;il+6, n+6&gt;   
   [3] System.Web.UI.WebControls.Button.OnClick (System.EventArgs e) &lt;il+33, n+112&gt;   
   [4] System.Web.UI.WebControls.Button.RaisePostBackEvent (System.String eventArgument) &lt;il+49, n+111&gt;   
   [5] System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (System.String eventArgument) &lt;il+7, n+11&gt;   
   [6] System.Web.UI.Page.RaisePostBackEvent (System.Web.UI.IPostBackEventHandler sourceControl, System.String eventArgument) &lt;il+7, n+14&gt;   
   [7] System.Web.UI.Page.RaisePostBackEvent (System.Collections.Specialized.NameValueCollection postData) &lt;il+21, n+37&gt;   
   [8] System.Web.UI.Page.ProcessRequestMain (System.Boolean includeStagesBeforeAsyncPoint, System.Boolean includeStagesAfterAsyncPoint) &lt;il+1462, n+1566&gt;   
   [9] System.Web.UI.Page.ProcessRequest (System.Boolean includeStagesBeforeAsyncPoint, System.Boolean includeStagesAfterAsyncPoint) &lt;il+60, n+132&gt;   
   [10] System.Web.UI.Page.ProcessRequest () &lt;il+20, n+81&gt;   
   [11] System.Web.UI.Page.ProcessRequestWithNoAssert (System.Web.HttpContext context) &lt;il+13, n+22&gt;   
   [12] System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) &lt;il+57, n+50&gt;   
   [13] ASP.agents_callerdetails_aspx.ProcessRequest (System.Web.HttpContext context) &lt;il+7, n+5&gt;   
   [14] System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () &lt;il+285, n+182&gt;   
   [15] System.Web.HttpApplication.ExecuteStep (System.Web.HttpApplication+IExecutionStep step, System.Boolean&amp; completedSynchronously) &lt;il+21, n+76&gt;   
   [16] System.Web.HttpApplication+ApplicationStepManager.ResumeSteps (System.Exception error) &lt;il+244, n+307&gt;   
   [17] System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest (System.Web.HttpContext context, System.AsyncCallback cb, System.Object extraData) &lt;il+92, n+124&gt;   
   [18] System.Web.HttpRuntime.ProcessRequestInternal (System.Web.HttpWorkerRequest wr) &lt;il+237, n+380&gt;   
   [19] System.Web.HttpRuntime.ProcessRequestNoDemand (System.Web.HttpWorkerRequest wr) &lt;il+44, n+99&gt;   
   [20] System.Web.Hosting.ISAPIRuntime.ProcessRequest (System.IntPtr ecb, System.Int32 iWRType) &lt;il+75, n+284&gt;  
  
  
  
  
  
  [0] App_Code.DBAccess.PrintLog (System.String log) &lt;il+12, n+165&gt;   
   [1] Agents_AgentHome.DataSubmit () &lt;il+10, n+53&gt;   
   [2] Agents_AgentHome.BtnSubmitNext_Click (System.Object sender, System.EventArgs e) &lt;il+6, n+6&gt;   
   [3] System.Web.UI.WebControls.Button.OnClick (System.EventArgs e) &lt;il+33, n+112&gt;   
   [4] System.Web.UI.WebControls.Button.RaisePostBackEvent (System.String eventArgument) &lt;il+49, n+111&gt;   
   [5] System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (System.String eventArgument) &lt;il+7, n+11&gt;   
   [6] System.Web.UI.Page.RaisePostBackEvent (System.Web.UI.IPostBackEventHandler sourceControl, System.String eventArgument) &lt;il+7, n+14&gt;   
   [7] System.Web.UI.Page.RaisePostBackEvent (System.Collections.Specialized.NameValueCollection postData) &lt;il+21, n+37&gt;   
   [8] System.Web.UI.Page.ProcessRequestMain (System.Boolean includeStagesBeforeAsyncPoint, System.Boolean includeStagesAfterAsyncPoint) &lt;il+1462, n+1566&gt;   
   [9] System.Web.UI.Page.ProcessRequest (System.Boolean includeStagesBeforeAsyncPoint, System.Boolean includeStagesAfterAsyncPoint) &lt;il+60, n+132&gt;   
   [10] System.Web.UI.Page.ProcessRequest () &lt;il+20, n+81&gt;   
   [11] System.Web.UI.Page.ProcessRequestWithNoAssert (System.Web.HttpContext context) &lt;il+13, n+22&gt;   
   [12] System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) &lt;il+57, n+50&gt;   
   [13] ASP.agents_callerdetails_aspx.ProcessRequest (System.Web.HttpContext context) &lt;il+7, n+5&gt;   
   [14] System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () &lt;il+285, n+182&gt;   
   [15] System.Web.HttpApplication.ExecuteStep (System.Web.HttpApplication+IExecutionStep step, System.Boolean&amp; completedSynchronously) &lt;il+21, n+76&gt;   
   [16] System.Web.HttpApplication+ApplicationStepManager.ResumeSteps (System.Exception error) &lt;il+244, n+307&gt;   
   [17] System.Web.HttpApplication.ResumeStepsFromThreadPoolThread (System.Exception error) &lt;il+19, n+37&gt;   
   [18] System.Web.HttpApplication+AsyncEventExecutionStep.ResumeStepsWithAssert (System.Exception error) &lt;il+12, n+40&gt;   
   [19] System.Web.HttpApplication+AsyncEventExecutionStep.OnAsyncEventCompletion (System.IAsyncResult ar) &lt;il+83, n+132&gt;   
   [20] System.Web.HttpAsyncResult.Complete (System.Boolean synchronous, System.Object result, System.Exception error, System.Web.RequestNotificationStatus status) &lt;il+56, n+62&gt;   
   [21] System.Web.SessionState.SessionStateModule.PollLockedSessionCallback (System.Object state) &lt;il+118, n+361&gt;   
   [22] System.Threading._TimerCallback.TimerCallback_Context (System.Object state) &lt;il+24, n+47&gt;   
   [23] System.Threading.ExecutionContext.runTryCode (System.Object userData) &lt;il+41, n+81&gt;   
   [24] System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup (System.Runtime.CompilerServices.RuntimeHelpers+TryCode code, System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode backoutCode, System.Object userData) &lt;il+-1, n+0&gt;   
   [25] System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) &lt;il+66, n+103&gt;   
   [26] System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) &lt;il+104, n+69&gt;   
   [27] System.Threading._TimerCallback.PerformTimerCallback (System.Object state) &lt;il+57, n+107&gt;  
  </code></pre>