문제

우리의 응용 프로그램은 Rick Strahl이 그의 DataContextFactory 클래스를 사용하여 스레드/httpcontext 당 데이터 콘텍스트를 유지 관리하는 접근 방식을 따릅니다. 블로그, Richard가 언급 한 키에 대한 수정안을 포함하여 (유형의 사용).

솔루션은 사운드가 나타 났지만 (대부분의 경우 다른 접근법이 더 좋을 수도 있지만) 이것을 사용하는 동안 응용 프로그램에 간헐적 오류가 나타나는 것을 보았습니다.

ExecuterEader는 개방적이고 사용 가능한 연결이 필요합니다. 연결의 현재 상태가 닫힙니다.

아래 속성을 사용하여 코드 전체에 걸쳐 Datacontext에 액세스합니다. 즉, DataContext 클래스의 일부입니다.

/// <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>();
    }
}

간헐적이기 때문에 나는 이것을 고정시키는 데 어려움을 겪고 있습니다. 내가 무엇을 잘못하고 있는지 아는 사람이 있습니까, 아니면이 문제를 어떻게 디버그 할 수 있는지 좋은 아이디어를 가지고 있습니까?


이것은 아마도의 복제 일 수 있습니다 보답 없는 의문 여기

도움이 되었습니까?

해결책

이제 DataContexts Per Transaction을 유지하는 사용자 정의 DataContextFactory를 사용합니다. 다른 주요 변화는 스레드를 통해 수동으로 액세스하는 대신 속성에 [스레드 스타트]를 사용하는 것이 었습니다.

이 변화가 더 이상 나타나지 않는 것처럼 보이기 때문에 다른 답변이 제기되지 않았기 때문에 [Threadstatic]을 솔루션으로 제안합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top