2012-03-08 5 views
1

私はC#/ .NETで書かれたWindowsサービスをAnyCPUにコンパイルしていますが、これはStructureMapを初期化しようとしているときに起動時に消滅します。私は、メモリダンプのうち、以下のスタックトレースを取得するために、デバッグ診断V1.2を使用しました:Win32エラー0n2と、なぜそれが実行されているから、私のアプリを妨げているとは何ですか?

System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef) 
System.RuntimeType.CreateInstanceSlow(Boolean, Boolean, Boolean)Unable to load image C:\Windows\assembly\NativeImages_v4.0.30319_64\mscorlib\b10e2a4a87b27f241113ead9433e25da\mscorlib.ni.dll, Win32 error 0n2 
System.RuntimeType.CreateInstanceDefaultCtor(Boolean, Boolean, Boolean, Boolean) 
System.Activator.CreateInstance[[System.__Canon, mscorlib]]() 
StructureMap.ConfigurationExpression.AddRegistry[[System.__Canon, mscorlib]]()*** ERROR: Module load completed but symbols could not be loaded for StructureMap.dll 
StructureMap.ObjectFactory.Initialize(System.Action`1) 

2行目は、実際に私への関心の一つです。そのファイルは私のマシン上に存在します。このサービスをデバッグして稼働させる方法は、次にどこで調べるべきですか?

これは価値があるため、StructureMapの構成が正しいことを検証し、正常に処理されるという単体テストがあります。

+3

Win32エラー0x2は「ファイルが見つかりません」です融合エラーを収集するには、Fuslogvw.exeを使用します。融合からヤウドが見つかり、それはあきらめた前にどこローダーが検索されていないアセンブリを見つけ出すことができるはずです記録します。 Windowsサービスは常にSystem32ディレクトリから始まることを覚えておいてください。 –

+1

これは答えだったはずです。 –

答えて

2

Win32エラー0x2は「ファイルが見つかりません」です。融合エラーを収集するには、Fuslogvw.exeを使用します。融合ログからyoudは見つけられなかったアセンブリと、それをあきらめる前にローダーがどこでそれを探したのかを把握できるはずです。 Windowsサービスは常にSystem32ディレクトリから始まることを覚えておいてください。