Come posso diagnosticare e minimizzare o prevenire AppDomainUnloadedException
?Come posso evitare AppDomainUnloadedException dopo che NUnit ha testato il codice PLINQ?
NUnit 2.5.2 genera costantemente AppDomainUnloadedException
dopo lunghi (> 10 s) test che coinvolgono PLINQ.
Già nel luglio del 2008, Stephen Toub said:
Sì, lo scheduler nel CTP non gestisce filo si interrompe molto bene, che fa sì che spesso il processo a bloccarsi quando esiste un programmatore dal vivo in un dominio essendo shutdown (dal momento che AppDomain shut down causa l'interruzione di thread su tutti i thread con frame stack in quel dominio). Stiamo lavorando per indurire lo per una versione futura.
Ho provato molte soluzioni, tra cui:
- L'esecuzione del test in un metodo separato per eliminare i riferimenti randagi
- Specificando
/domain:None
come argomento NUnit - Rimozione elemento
legacyUnhandledAppDomainPolicy
danunit-console.exe.config
Non riesco a eseguire il backup di NUnit a reduce the odds of the race condition, poiché ho bisogno di PLINQ per rendere i miei test parametrici più veloci. Le versioni di NUnit senza il problema non supportano i test parametrici.
vedere anche http://stackoverflow.com/questions/561402/cassini-webserver-webdev-nunit-and-appdomainunloadedexception per un problema correlato. Questo è probabilmente https://bugs.launchpad.net/nunitv2/+bug/423611 –
Spesso questo problema è causato dallo smaltimento errato di oggetti istanziati durante l'avvio di un test, vedere se si stanno eliminando tutte le risorse nel modo giusto – sll