hampole posted on Wednesday, July 08, 2009
I am using .net Framework 3.5 and CSLA 3.5 on XP. I am getting dataportal fetch error when called wrapped around TransactionScope. Here is the error. Please help!
Thanks,
Ravi
here is the code:
TransactionOptions options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
//options.Timeout = new TimeSpan(0, 30, 0);
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, options))
{
success = SaveKioskActivateProcess();
if (success)
ts.Complete();
else
ts.Dispose();
}
Inside the method SaveKioskActivateProcess, I have calls to BOs.
DataPortal Exception:
Csla.DataPortalException: DataPortal.Fetch failed (The operation is not valid
for the state of the transaction.) ---> Csla.Reflection.CallMethodException:
DataPortal_Fetch method call failed --->
System.Transactions.TransactionException: The operation is not valid for the
state of the transaction. at
System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction
tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification,
Transaction atomicTransaction) at
System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification
promotableSinglePhaseNotification) at
System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) at
System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) at
System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction
transaction) at
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection
owningObject) at
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection
owningConnection) at
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection
outerConnection, DbConnectionFactory connectionFactory) at
System.Data.SqlClient.SqlConnection.Open() at
System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser
user) at System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe() at
System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode() at
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression
query) at System.Data.Linq.DataContext.ExecuteMethodCall(Object instance,
MethodInfo methodInfo, Object[] parameters) at
PSI.Applications.RemoteManagement.Dal.RMDBDataContext.usp_GetInActiveKioskList()
in c:\remotemanagement\trunc\common\dbconnectionlib\rmdb.designer.cs:line 1317
at
PSI.Applications.RemoteManagement.BusinessObjects.InActiveKioskList.DataPortal_Fetch()
in
C:\RemoteManagement\Trunc\BusinessObjects\BusinessObjectsCustom\KioskManagement\InActiveKioskList.cs:line
49 at dm(Object , Object[] ) at Csla.Reflection.MethodCaller.CallMethod(Object
obj, DynamicMethodHandle methodHandle, Object[] parameters) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\MethodCaller.cs:line 221 --- End
of inner exception stack trace --- at
System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction
tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification,
Transaction atomicTransaction) at
System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification
promotableSinglePhaseNotification) at
System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) at
System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) at
System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction
transaction) at
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection
owningObject) at
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection
owningConnection) at
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection
outerConnection, DbConnectionFactory connectionFactory) at
System.Data.SqlClient.SqlConnection.Open() at
System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser
user) at System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe() at
System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode() at
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression
query) at System.Data.Linq.DataContext.ExecuteMethodCall(Object instance,
MethodInfo methodInfo, Object[] parameters) at
PSI.Applications.RemoteManagement.Dal.RMDBDataContext.usp_GetInActiveKioskList()
in c:\remotemanagement\trunc\common\dbconnectionlib\rmdb.designer.cs:line 1317
at
PSI.Applications.RemoteManagement.BusinessObjects.InActiveKioskList.DataPortal_Fetch()
in
C:\RemoteManagement\Trunc\BusinessObjects\BusinessObjectsCustom\KioskManagement\InActiveKioskList.cs:line
49 at dm(Object , Object[] ) at Csla.Reflection.MethodCaller.CallMethod(Object
obj, DynamicMethodHandle methodHandle, Object[] parameters) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\MethodCaller.cs:line 221 at
Csla.Reflection.MethodCaller.CallMethod(Object obj, DynamicMethodHandle
methodHandle, Object[] parameters) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\MethodCaller.cs:line 225 at
Csla.Reflection.MethodCaller.CallMethod(Object obj, String method, Object[]
parameters) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\MethodCaller.cs:line 149 at
Csla.Reflection.LateBoundObject.CallMethod(String method) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\LateBoundObject.cs:line 70 at
Csla.Server.SimpleDataPortal.Fetch(Type objectType, Object criteria,
DataPortalContext context) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\DataPortal\Server\SimpleDataPortal.cs:line
124 --- End of inner exception stack trace --- at
System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction
tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification,
Transaction atomicTransaction) at
System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification
promotableSinglePhaseNotification) at
System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx) at
System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx) at
System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction
transaction) at
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection
owningObject) at
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection
owningConnection) at
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection
outerConnection, DbConnectionFactory connectionFactory) at
System.Data.SqlClient.SqlConnection.Open() at
System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser
user) at System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe() at
System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode() at
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression
query) at System.Data.Linq.DataContext.ExecuteMethodCall(Object instance,
MethodInfo methodInfo, Object[] parameters) at
PSI.Applications.RemoteManagement.Dal.RMDBDataContext.usp_GetInActiveKioskList()
in c:\remotemanagement\trunc\common\dbconnectionlib\rmdb.designer.cs:line 1317
at
PSI.Applications.RemoteManagement.BusinessObjects.InActiveKioskList.DataPortal_Fetch()
in
C:\RemoteManagement\Trunc\BusinessObjects\BusinessObjectsCustom\KioskManagement\InActiveKioskList.cs:line
49 at dm(Object , Object[] ) at Csla.Reflection.MethodCaller.CallMethod(Object
obj, DynamicMethodHandle methodHandle, Object[] parameters) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\MethodCaller.cs:line 221 at
Csla.Reflection.MethodCaller.CallMethod(Object obj, DynamicMethodHandle
methodHandle, Object[] parameters) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\MethodCaller.cs:line 225 at
Csla.Reflection.MethodCaller.CallMethod(Object obj, String method, Object[]
parameters) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\MethodCaller.cs:line 149 at
Csla.Reflection.LateBoundObject.CallMethod(String method) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\Reflection\LateBoundObject.cs:line 70 at
Csla.Server.SimpleDataPortal.Fetch(Type objectType, Object criteria,
DataPortalContext context) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\DataPortal\Server\SimpleDataPortal.cs:line
124 at Csla.DataPortal.Fetch(Type objectType, Object criteria) in
C:\Projects\CSLA3.5SP1\cslacs\Csla\DataPortal\Client\DataPortal.cs:line 249 at
Csla.DataPortal.Fetch[T]() in
C:\Projects\CSLA3.5SP1\cslacs\Csla\DataPortal\Client\DataPortal.cs:line 179 at
PSI.Applications.RemoteManagement.BusinessObjects.InActiveKioskList.GetInActiveKioskList()
in
C:\RemoteManagement\Trunc\BusinessObjects\BusinessObjectsCustom\KioskManagement\InActiveKioskList.cs:line
31 at
Admin_KioskAdmin_ManageKioskActivateDeactivate.GetInprocessAndPendingCount() in
c:\RemoteManagement\Trunc\Web\WebSite\Admin\KioskAdmin\ManageKioskActivateDeactivate.aspx.cs:line
557 at Admin_KioskAdmin_ManageKioskActivateDeactivate.ValidateLicense() in
c:\RemoteManagement\Trunc\Web\WebSite\Admin\KioskAdmin\ManageKioskActivateDeactivate.aspx.cs:line
449 at Admin_KioskAdmin_ManageKioskActivateDeactivate.SaveKioskActivateProcess()
in
c:\RemoteManagement\Trunc\Web\WebSite\Admin\KioskAdmin\ManageKioskActivateDeactivate.aspx.cs:line
371 at Admin_KioskAdmin_ManageKioskActivateDeactivate.btnActivate_Click(Object
sender, EventArgs e) in
c:\RemoteManagement\Trunc\Web\WebSite\Admin\KioskAdmin\ManageKioskActivateDeactivate.aspx.cs:line
188