2009-08-27 12 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-appdomainunloadedexceptionも参照してください。これはおそらく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ではまだこの問題が発生していますか?

    関連する問題