Problem using scope with linq

I must specify the isolation level  for some transaction, so I've tried something like in the code snippet.

But we always have an exception.

I'm sorry, I've VS in french and all exception message are in french too :(

Information about the exception:

   à System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
   à System.Data.EntityClient.EntityConnection.Open()
   à System.Data.Objects.ObjectContext.EnsureConnection()
   à System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   à System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
   à System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   à System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__0[TResult](IEnumerable`1 sequence)
   à System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
   à System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression)
   à System.Linq.Queryable.First[TSource](IQueryable`1 source)
   à pages_Default.makeLoan(geststockEntities gse) dans d:\WorkSpaces\geststock\GestStock2\pages\makeLoan.aspx.cs:ligne 168
   à QueryHelper.insertDB(InsertDbDelegate methodThatWriteDB, IsolationLevel isoLevel, Page senderPage) dans xxxxx\QueryHelper.cs:ligne 47


ex = {"Échec du fournisseur sous-jacent sur Open."}
//If I translate this, it would be something like : "Failure of the underlying provider on Open."

InnerException = {"L'accès réseau de MSDTC (Distributed Transaction Manager) a été désactivé. Activez DTC pour l'accès réseau dans la configuration de sécurité de MSDTC à l'aide de l'outil administratif des services de composants."}
//Translation
Access network MSDTC (Distributed Transaction Manager) has been disabled. Activate DTC for network access in the security configuration for MSDTC using the Services administrative tool components.


I've a MS SQL 2005 standard Database and I currently only use the "debug" and "local" server of visual studio.

So what can I make?

Is there a better way to manage isolation level for a transaction?


try
        {
            using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = isoLevel}))
            {
                using (geststockEntities gse = new geststockEntities(cs_admin))
                {
                    methodThatWriteDB(gse);
                    objectsAdded = gse.SaveChanges();
                    if (objectsAdded == 0) throw new Exception();
                    scope.Complete();
                    addUserMessage(senderPage, "Insertion OK");
                } 
            }
        }
        catch (Exception ex)
        {
            addErrorMessage(senderPage, "Error message");
        }

Open in new window

LVL 1
NargzulAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
NargzulConnect With a Mentor Author Commented:
The problem was in the MSDTC configuration of the local computer
0
 
mohan_sekarCommented:
Is the database service running on a different server? If so, have you enabled MS DTC on that server?
0
 
NargzulAuthor Commented:
Yes he is running on a different server, and we've activated this server, but I don't know if I've done all these manipulation correctly
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
mohan_sekarCommented:
You shall try configuring your DTC as per the attached screenshot
DTC.GIF
0
 
NargzulAuthor Commented:
We've already the same thing :(
0
 
mohan_sekarCommented:
on both the machines?
0
 
NargzulAuthor Commented:
both? Which other than the sql server?

We just have a visual studio to test currently
0
 
mohan_sekarCommented:
Are you trying to open more than one database connection? If so, try closing the 1st connection before opening a new connection?
0
 
NargzulAuthor Commented:
No, we just have one database.(and our developper are under vista(sigh))
0
 
mohan_sekarCommented:
you didn't understand my point - I asked whether you are opening more than one database connection in your application/program...phew
0
 
NargzulAuthor Commented:
I've added explicit "dispose()" to the object context, but nothing change.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.