Wie kann ich die Anwendungsdomänenausnahme verhindern, nachdem NUnit den PLINQ-Code getestet hat?

9

Wie kann ich AppDomainUnloadedException diagnostizieren und minimieren oder verhindern?

NUnit 2.5.2 liefert konsistent AppDomainUnloadedException nach langen (& gt; 10s) Tests mit PLINQ.

Zurück im Juli 2008 Stephen Toub sagte :

  

Ja, der Scheduler in der   CTP behandelt Threadabbrüche nicht sehr gut, was häufig verursacht   der Prozess zum Absturz, wenn ein Live-Scheduler in einer Domäne existiert   Herunterfahren (seit dem Herunterfahren von AppDomain führt dies zu Threadabbrüchen bei allen   Threads mit Stack-Frames in dieser Domäne). Wir arbeiten daran, zu verhärten   dies für eine zukünftige Version.

Ich habe viele Problemumgehungen versucht, einschließlich:

  • Ausführen des Tests in einer separaten Methode, um Streureferenzen zu eliminieren
  • Angabe von /domain:None als NUNit-Argument
  • Entfernen des Elements legacyUnhandledAppDomainPolicy von nunit-console.exe.config

Ich kann NUnit nicht auf zurückstufen, um die Chancen der Race Condition zu reduzieren < Ich brauche PLINQ, um meine parametrischen Tests schneller zu machen. Versionen von NUnit ohne das Problem unterstützen keine parametrischen Tests.

    
Garth Kidd 27.08.2009, 10:28
quelle

1 Antwort

1

Nach diesem PLINQ Task Manager-Thread auf der MSDN Foren , Ihr Problem sollte gelöst werden; Mit der neuesten Version des .NET-Frameworks wurde der Task-Manager von PLINQ beim Herunterladen von AppDomain sauber heruntergefahren.

Laufen Sie immer noch mit .NET 4 oder 4.5 auf dieses Problem?

    
Judah Himango 05.10.2011 20:02
quelle