2009-08-27 6 views
9

¿Cómo puedo diagnosticar, minimizar o prevenir AppDomainUnloadedException?¿Cómo puedo evitar AppDomainUnloadedException después de que NUnit pruebe el código PLINQ?

NUnit 2.5.2 lanza consistentemente AppDomainUnloadedException después de pruebas largas (> 10s) que involucran a PLINQ.

En julio de 2008, Stephen Toub said:

Sí, el programador en el CTP no maneja hilo aborta muy bien, lo que con frecuencia hace que el proceso a bloquearse cuando existe un planificador en vivo en un dominio siendo shutdown (ya que el apagado de AppDomain provoca abortos de hilos en todos los hilos con marcos de pila en ese dominio). Estamos trabajando para endurecer esto para una versión futura.

que he probado muchas soluciones, incluyendo:

  • Ejecución de la prueba en un método separado para eliminar referencias callejeros
  • Especificación /domain:None como argumento nUnit
  • la eliminación del elemento de legacyUnhandledAppDomainPolicynunit-console.exe.config

No puedo retroceder NUnit a reduce the odds of the race condition, ya que necesito PLINQ para hacer que mis pruebas paramétricas sean más rápidas. Las versiones de NUnit sin el problema no admiten pruebas paramétricas.

+0

ver también http://stackoverflow.com/questions/561402/cassini-webserver-webdev-nunit-and-appdomainunloadedexception por un problema relacionado. Esto es probablemente https://bugs.launchpad.net/nunitv2/+bug/423611 –

+1

A menudo, este problema causado por la eliminación incorrecta de los objetos instanciados durante el inicio de una prueba, verifica si está eliminando todos los recursos de la manera correcta. – sll

Respuesta

1

De acuerdo con this PLINQ Task Manager thread on the MSDN forums, su problema debe ser resuelto; con la última versión del framework .NET, el Administrador de tareas de PLINQ ha sido apagado sin problemas en la descarga de AppDomain.

¿Todavía tiene este problema con .NET 4 o 4.5?

Cuestiones relacionadas