[ Marko Medojević @ 24.02.2009. 17:04 ] @
Ćao! Pokušavam da implementiram transakcije u jednom projektu koji se bazira na Entity frameworku i kod ide nešto ovako: Code: using (BazaTestEntities ctx = new BazaTestEntities()) { bool success = false; using (TransactionScope ts = new TransactionScope()) { try { ... ctx.SaveChanges(false); ... ... ctx.SaveChanges(false); ..... .... ctx.SaveChanges(false); ts.Complete(); success = true; } // end try catch(Exception ex) { Response.Write(String.Format("{0} <hr /> {1} <hr /> {2} <hr />", ex.Message, ex.InnerException, ex.StackTrace)); } // end catch } // end transaction if (success) { ctx.AcceptAllChanges(); } else { Response.Write("GRESKA!!!!"); } } // end context Uvek dobijam sledeću grešku: Message: Citat: The underlying provider failed on Open. InnerException: Citat: System.Data.SqlClient.SqlException: MSDTC on server 'SUN\678264BF-C7BE-48' is unavailable. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) at System.Data.SqlClient.TdsParser.GetDTCAddress(Int32 timeout, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.GetDTCAddress() 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.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) StrackTrace: Citat: at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) at System.Data.EntityClient.EntityConnection.Open() at System.Data.Objects.ObjectContext.EnsureConnection() at System.Data.Objects.ObjectContext.SaveChanges(Boolean acceptChangesDuringSave) at Admin.Wizard1_FinishButtonClick(Object sender, WizardNavigationEventArgs e) GRESKA!!!! Ubih se da provalim u čemu je problem, ali ništa! Baza je SQL Server Express 2005, MDF fajl u okviru app_data foldera. |