2009-07-17 13 views
0

우리의 응용 프로그램은 리차드에 의해 언급 된 키에 대한 수정을 포함하여 blog에 Rick Strahl이 설명한 DataContextFactory 클래스를 사용하여 Thread/HttpContext 당 DataContext를 유지 관리하는 방식을 사용합니다 (type.AssemblyQualifiedName).Scoped DataContext는 간헐적으로 ExecuteReader 오류를 발생시킵니다.

가 ExecuteReader는 개방적이고 가능한 연결이 필요합니다 (대부분의 경우 다른 접근 방법이 더 좋을 수도 있지만)

솔루션

내가 응용 프로그램에 나타나는 간헐적 인 오류를 보았다이를 사용하지만 동시에 소리를 보였다. 연결의 현재 상태가 닫힙니다.

/// <summary> 
/// Returns the current datacontext for the thread or HttpContext, creating one if it does not exist. 
/// </summary> 
public static SharedDataContext Current 
{ 
    get 
    { 
     return DataContextFactory.GetScopedDataContext<SharedDataContext>(); 
    } 
} 

인 intermittment 내가 힘든 시간이 달아을 보내고 있습니다 :

내가 아래 속성을 사용하여 코드 전반에 걸쳐 데이터 컨텍스트에 접근, 내 DataContext에의 클래스의 일부입니다. 누구든지 내가 뭘 잘못했는지 알 수 있습니까? 아니면이 문제를 어떻게 디버깅 할 수 있을지 잘 알고 있습니까?


참고이 가능하게 답이없는 질문 here

답변

0

우리는 지금 트랜잭션 당 datacontexts을 유지하는 사용자 정의 DataContextFactory를 사용하는 중복 될 수 있습니다. 유일한 다른 주요 변경 사항은 Thread.Get/SetData를 통해 수동으로 액세스하는 대신 [ThreadStatic]을 속성에 사용하는 것입니다.

이 변경으로 문제가 더 이상 나타나지 않고 다른 답변이 제시되지 않았으므로, 나는 [ThreadStatic]을 해결책으로 제안하고있다.

관련 문제