4

CruiseControl.NET (サービスとして) を介して WatiN を使用して NUnit で一連のテストを実行すると、次のエラーが表示されます。

SetUp : System.Runtime.InteropServices.COMException : 
Creating an instance of the COM component with CLSID
{0002DF01-0000-0000-000-000000000046} from the IClassFactory 
failed due to the following error: 800704a6.
TearDown : System.NullReferenceException : Object reference 
not set to an instance of an object. 

このエラーは一貫性がなく (25% の確率で発生)、再現できないため、デバッグするのは悪夢でした。誰かに同様の問題がありますか?

4

2 に答える 2

4

マシンを再起動します

新しい COM オブジェクトのインスタンス化を妨げる Windows の更新があります。

ServerFault と StackOverflow を調べたところ、800704a6エラー コードについて言及している投稿がいくつか見つかりました。

特にこれは私にとってクリックになりました-https: //serverfault.com/questions/179156/ie8-script-error-800704a6エラーコードがERROR_SHUTDOWN_IS_SCHEDULED

私もその正確なエラーがありました:

Creating an instance of the COM component with CLSID {0002DF01-0000-0000-000-000000000046} from the IClassFactory failed due to the following error: 800704a6

于 2012-01-10T01:42:23.337 に答える
2

AFAIK WatiNが機能するには、ユーザー(つまりデスクトップ)セッションが必要です。したがって、私の推測は次のとおりです。

  • 通常のユーザーアカウントとしてCruiseControl.Netサービスを実行しています
  • このアカウントは(通常)CruiseControl.Netをホストしているサーバーにログインしています
  • 利用可能なデスクトップセッションがない場合、テストは失敗します

以前は、[サービスにデスクトップとの対話を許可する]チェックボックス([サービスのプロパティ]、[ログオン]タブ)をオンにするだけで十分でしたが、Vista以降もこれが機能するかどうかはわかりません。動作するのは(ただし、醜い、ハック的な方法で)、CruiseControl.Netをサービスとしてではなく、デスクトップセッションでコンソールから実行することです。

于 2011-07-12T20:07:30.407 に答える