title: transaction scope gets aborted often
body: <p>my transaction scope gets aborted often </p>
  
  <p>my problem behind it :</p>
  
  <p>when opening multiple transaction scope with different classes ,we face the error of transaction aborted,each and every class is nested and in the methods the transaction scope is initalized,but the method where the transaction scope declared is not called,but giving timeout and transaction scope gets aborted repeatedly.</p>
  
  <p>My stack trace is as follows :</p>
  
  <blockquote>
    <p>System.Transactions.TransactionAbortedException was caught<br>
    HResult=-2146233087   Message=The transaction has aborted.<br>
    Source=System.Transactions</p>
  </blockquote>
  
  <pre><code>StackTrace:
         at System.Transactions.TransactionStatePromotedAborted.CreateAbortingClone(InternalTransaction tx)
         at System.Transactions.DependentTransaction..ctor(IsolationLevel isoLevel, InternalTransaction internalTransaction, Boolean blocking)
         at System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption)
         at System.Transactions.TransactionScope.SetCurrent(Transaction newCurrent)
         at System.Transactions.TransactionScope..ctor(TransactionScopeOption scopeOption)
         at TrapError.ErrorDescription..ctor()
         at QueryRecordsets.FetchRecordsets..ctor()
    InnerException: System.TimeoutException
         HResult=-2146233083
         Message=Transaction Timeout
         InnerException:   
  </code></pre>
  
  <p>while analyzing error description it has the following info :</p>
  
  <pre><code>Event code: 3005 
  Event message: An unhandled exception has occurred. 
  Event time: 10/30/2013 9:19:31 AM 
  Event time (UTC): 10/30/2013 3:49:31 AM 
  Event ID: 057d425ae7424adbb9a021d856f0d3e0 
  Event sequence: 14 
  Event occurrence: 1 
  Event detail code: 0 
  
  Application information: 
      Application domain: /LM/W3SVC/1/ROOT/eSmartDotNet-2-130275784247371995 
      Trust level: Full 
      Application Virtual Path: /eSmartDotNet 
      Application Path: I:\Rafiq\29-10-2013\Source Code Esmart Application\ 
      Machine name: WINSERVER2012 
  
  Process information: 
      Process ID: 4908 
      Process name: w3wp.exe 
      Account name: IIS APPPOOL\DefaultAppPool 
  
  Exception information: 
      Exception type: HttpUnhandledException 
      Exception message: Exception of type 'System.Web.HttpUnhandledException' was thrown.
     at System.Web.UI.Page.HandleError(Exception e)
     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     at System.Web.UI.Page.ProcessRequest()
     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
  
  The transaction has aborted.
     at QueryRecordsets.FetchRecordsets..ctor()
     at ASP.logincheck_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in I:\Rafiq\29-10-2013\Source Code Esmart Application\LoginCheck.aspx:line 42
     at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
     at System.Web.UI.Page.Render(HtmlTextWriter writer)
     at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  
  Transaction Timeout
  
  
  
  Request information: 
      Request URL: http://localhost/eSmartDotNet/LoginCheck.aspx 
      Request path: /eSmartDotNet/LoginCheck.aspx 
      User host address: ::1 
      User:  
      Is authenticated: False 
      Authentication Type:  
      Thread account name: IIS APPPOOL\DefaultAppPool 
  
  Thread information: 
      Thread ID: 33 
      Thread account name: IIS APPPOOL\DefaultAppPool 
      Is impersonating: False 
      Stack trace:    at System.Web.UI.Page.HandleError(Exception e)
     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
     at System.Web.UI.Page.ProcessRequest()
     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
  </code></pre>