MSDN에 따르면, 동시 가비지 수집 (기본 동작이므로 <gcConcurrent enabled="true"/>
또는 지정되지 않음)으로 인해로드가 심한 .NET 응용 프로그램이 ExecutionEngineException을 throw 할 수 있다는 내용의 "팁"이 있습니다. 누구든지 Microsoft KB 기사 또는 이에 대한 배경을 제공하는 다른 소스를 알고 있습니까?동시 GC로 인해 때때로 MSDN 당 ExecutionEngineException이 발생하는 이유는 무엇입니까?
우리는 NHibernate 3.2 기반 Windows 서비스 응용 프로그램을 직접 경험했습니다.이 응용 프로그램은 최대 몇 시간의 작동 후에도 항상 충돌합니다. 우리는 ISession.Flush() 호출에 대한 예외를 추적 할 수있었습니다.
nhusers에 동일한 문제가있는 것으로보고 한 사람이 thread입니다. 동시 GC를 비활성화하는 것이었던 그의 제안 된 해결 방법은 지금까지 우리에게 도움이되었습니다. 동시 GC를 암시 적으로 비활성화하는 서버 모드 GC (<gcServer enable="true"/>
)로 전환하는 것도 트릭을 수행했습니다.
이 버그를 MS에 버그로 제출하기 전에,이 팁에 언급 된 동시 GC 불안정성에 대한 추가 정보가있는 사용자가 있는지 확인하고 싶습니다.
문서화되었다는 사실을 감안할 때 귀하의 버그는 "디자인 별"으로 마감 될 수 있습니다. 그건 제쳐두고, 재미있는 질문. – vcsjones
@Nick Jones : .NET 4.0 설명서에는이 버전이 더 이상 사용되지 않고 런타임에 더 이상이 예외를 throw하지 않는다고 나와 있습니다. – casperOne
@casperOne : NH 3.2는. NET 3.5에 대해 컴파일됩니다. –