1

내가 알고있는 문제는 트랜잭션 범위와 관련된 로컬 문제 일 가능성이 있습니다. 아마도 MSDTC 일 것입니다.왜 TransactionScope가 Entity Framework를 사용하는 데 문제가 있습니까?

다른 프로젝트 개발자는 (같은 코드베이스는 모든 최선을 다하고은) 전체 솔루션을 실행,하지만 난 데이터베이스 (항상)에서 일부 데이터를 얻을 때, 나는 다음과 같은 오류가 있습니다

The underlying provider failed on EnlistTransaction. 


    at System.Data.EntityClient.EntityConnection.EnlistTransaction(Transaction transaction) 
    at System.Data.Objects.ObjectContext.EnsureConnection() 
    at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) 
    at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() 
    at System.Linq.Enumerable.First[TSource](IEnumerable`1 source) 
    at System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__0[TResult](IEnumerable`1 sequence) 
    at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot) 
    at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression) 
    at System.Linq.Queryable.First[TSource](IQueryable`1 source, Expression`1 predicate) 

하는 경우를 나는 트랜잭션 범위, complete() 및 모든 것을 사용하여 주석을 달고, 예상대로 작동한다.

이전에이 문제가 있었나요?

편집 :

입니다 같은 매우 간단한 일이 오류가 발생합니다 쿼리 :

var entity = Entities.EntityX.First(p => p.ID == id); 

EDIT를 해결할 :

서버의 LMHOSTS 오래된이었다.

+0

문제의 원인에 대해 더 많이 쓸 수 있습니까? – kubal5003

+0

@ kubal5003 죄송하지만 시간이 오래되었지만 더 이상 기억이 없습니다. =/ –

답변

2

DTC 포트를 차단하는 방화벽 규칙이있을 수 있습니다. 또는 일부 DTC 포트를 허용하는 불완전한 방화벽 규칙은 있지만 다른 것은 허용하지 않습니까? 필자는 방화벽을 통해 잘 작동하는 분산 트랜잭션을 얻지 못했습니다. directions을 따른 후에도.

+0

DTCPing.exe를 실행하려고하는데 advpack.dll에 오류가 발생합니다. S 오류에 대해 아무 말도하지 않는 한 가지 결과 만/ –

+0

문제 : 서버의 lmhost가 구식입니다. –

관련 문제