2009-08-27 8 views
9

AppDomainUnloadedException을 어떻게 진단하고 최소화하거나 예방할 수 있습니까?NUnit이 PLINQ 코드를 테스트 한 후 어떻게 AppDomainUnloadedException을 방지 할 수 있습니까?

NUnit 2.5.2는 PLINQ와 관련된 긴 (> 10 초) 테스트 후에 일관되게 AppDomainUnloadedException을 던졌습니다. 2008 년 7 월

위로 Stephen Toub said :

네, 스레드를 처리하지 않는 CTP의 스케줄러는 라이브 스케줄러가 도메인에있는 경우 충돌이 자주 과정을 일으키는 아주 잘 중단 중인 경우 종료 (AppDomain 종료로 인해 해당 도메인에서 스택 프레임이있는 모든 스레드의 스레드가 중단됨). 우리는 향후 릴리스를 위해 을 강화하기 위해 노력하고 있습니다. 별도의 방법으로 테스트를 실행

  • nunit-console.exe.config에서 legacyUnhandledAppDomainPolicy 요소를 삭제하는 NUNIT 인수
  • /domain:None 지정 길잃은 참조
  • 을 제거하려면 다음을 포함

내가 해봤 많은 해결,

NUnit을으로 역행 할 수 없습니다., 필자의 파라 메트릭 테스트를 빠르게하기 위해 PLINQ가 필요합니다. 문제가없는 NUnit의 버전은 파라 메트릭 테스트를 지원하지 않습니다.

+0

관련 문제에 대한 예외 http://stackoverflow.com/questions/561402/cassini-webserver-webdev-nunit-and-appdomainunloaded 예외도 참조하십시오. 이것은 아마도 https://bugs.launchpad.net/nunitv2/+bug/423611 –

+1

일 것입니다. 테스트 시작 중에 객체의 잘못된 처리로 인해 발생하는 이러한 문제는 올바른 방법으로 모든 리소스를 삭제하는지 확인하십시오. – sll

답변

1

this PLINQ Task Manager thread on the MSDN forums에 따르면 문제가 해결되어야합니다. .NET Framework의 최신 버전 인 PLINQ의 작업 관리자는 AppDomain 언로드시 완전히 종료되었습니다.

.NET 4 또는 4.5에서이 문제가 계속 발생합니까?