【发布时间】:2009-08-27 10:28:48
【问题描述】:
如何诊断和最小化或预防AppDomainUnloadedException?
在涉及 PLINQ 的长时间 (>10 秒) 测试之后,NUnit 2.5.2 始终抛出 AppDomainUnloadedException。
早在 2008 年 7 月,Stephen Toub said:
是的,调度程序在 CTP 不能很好地处理线程中止,这经常导致 当域中存在实时调度程序时崩溃的进程 关闭(因为 AppDomain 关闭会导致所有线程中止 该域中具有堆栈帧的线程)。我们正在努力加强 这是为了将来的版本。
我尝试了很多解决方法,包括:
- 以单独的方法运行测试以消除杂散引用
- 将
/domain:None指定为 NUUnit 参数 - 从
nunit-console.exe.config中删除legacyUnhandledAppDomainPolicy元素
我无法将 NUnit 降级为 reduce the odds of the race condition,因为我需要 PLINQ 来加快我的参数测试。没有问题的 NUnit 版本不支持参数测试。
【问题讨论】:
-
这种问题通常是由于在测试启动时对实例化对象的错误处理导致的,请查看您是否以正确的方式处理所有资源
标签: .net nunit appdomain plinq parallel-extensions