문제

나는 asp.net-mvc 응용 프로그램입니다.Linq 데이터의 컨텍스트 전달되는 서비스로 개체구조에 의해 지도입니다.나는 설정의 범위는 하이브리드입니다.이 모두는 잘 작동합니다.

protected override void configure()
{
    ForRequestedType<AetherDataContext>()
        .TheDefaultIs(() => new AetherDataContext())
        .CacheBy(InstanceScope.Hybrid);
}

문제는 내가 계속 실행 저희의 메모리지 IDisposable 인터페이스는 지금까지 실제로 호출합니다.

누구나 아이디어를 얻었다?

실패는 사람이 어떤 다른 아이디어에 대한 일들이는 원인이 될 수도 있습니다 내가 메모리 예외?

업데이트:

그래서 몇 가지 추가 정보를,그냥 박제의 몇 가지 방법으로 데이터의 컨텍스트를 넣 브레이크를 포인트에 있다.

protected override void Dispose(bool disposing)
{
    Debug.WriteLine("Disposing: " + DateTime.Now);
    base.Dispose(disposing);
}

public new void Dispose()
{
    Debug.WriteLine("Disposing: " + DateTime.Now);
    base.Dispose();
}

나는 나는 이렇게 올바른 방법으로,추측되는 새로운 방법이 될 것이라고?

어쨌든,의 어느 브레이크를 포인트에 도달 했습니다.그러나 생성자를 위해 같은 클래스라는 모든 요청에 대 하지만입니다.지 않는 이상적인 나는 생각입니다.

도움이 되었습니까?

해결책

이것은 내가 2 일 전에 묻는 질문의 거의 정확한 사본입니다. Idisposable을 구현하는 항목이 포함 된 세션

instancescope.hybrid는 httpcontext.current.items가 존재하는 경우 또는 instancescope.httpsession이 httpsession 및 threadlocal을 사용하는 것과 동일한 방식으로 작동하는 경우 객체를 저장합니다. 요청 당 항목 수집이 생겨나 기 때문에 내 질문에 대한 패턴을 구현하면 현재 요청이 끝날 때 해고를 처리해야합니다.

다른 팁

좋아, 그래서 최신 버전의 structuremap (2.3.5) 유용한 작은 방법이 있습니다

HttpContextBuildPolicy.DisposeAndClearAll();
HTTPContext 및 ThreadLocal의 정리 편의 메소드. httpcontextBuildPolicy.disposeAndClearAll (), threadLocalStoragePolicy.DisposeAndClearAll (). 두 메소드를 호출하면 모든 캐시 인스턴스를 꺼내고 객체가 idisposable 인 경우 idispose를 호출합니다.

이전에는 처분 방법이 호출되지 않았기 때문에 Application_endRequest에 추가했으며 지금은 이에 추가했습니다. 나는 이것이 내 기억 문제 중 일부를 해결하기를 바라고있다.

우리는 보게 될 것이다.

그래서 해결책;그 Cassini 를 일으키는 문제입니다.기본적으로 만들어 새로운 컨텍스트에 대한 모든 요청을 합니다.는 이유는 내가 보고 컨텍스트를 만들 수 있으로 하지 않았던 전화 나는 처분할 수 있는 제대로 나는 아무 생각이 없습니다.그러나 다시 내가 준비하는 믿는 것 이것은 뭔가가 카시.

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