7

私のコンピューターでは NGen に不満があり、何が問題なのかを深く理解する方法が見つかりません。

起動するたびに、ngen は次のメッセージをログに記録します。

.NET ランタイム最適化サービス (clr_optimization_v2.0.50727_32) - サービスが一時的なエラーの制限に達しました。シャットダウンします。Service Manager から返された最後のエラー: 0x8000ffff。

コマンドラインで最適化サービスを開始しようとすると、同じエラーが再度ログに記録されます。

ngen サービスを開始し、すぐにキューを一時停止することができました (次のように 2 行のバッチ ファイルを作成することによって)。

net start clr_optimization_v2.0.50727_32

ngen キューの一時停止

だから今、次のようにさまざまなステータスレベルでアイテムを実行して、キューをクリアしようとしました:

ngen executequeueditems 3 /nologo /verbose

しかし、結果は常に次のとおりです。

壊滅的な障害 (HRESULT からの例外: 0x8000FFFF (E_UNEXPECTED))

...途中でVisual Studio 2008をアンインストール/再インストールしました。SQLサーバー2005をアンインストールし、「システムファイルチェッカー」を実行しました:sfc /scannow

アイデアが不足しており、ngen の専門家からの助けが大好きです。

「これらの壊滅的な障害の原因は何ですか?」などの情報を入手するにはどうすればよいですか? ( /verbose オプションを使用しても、検出される情報の量は増えないことに注意してください。「生成されるキューにあるファイルは何ですか?」 -- それらのファイルの一部を削除したり、特定のファイルに問題を突き止めたりすることはできますか? ..

.net Framework 2.0 は vista であり、オペレーティング システムの保護された部分であるため、アンインストールと再インストールは簡単ではありません。

更新:ここで提供されているアドバイスも試しました(最初の返信で言及されています)-しかし、同じ壊滅的な失敗メッセージが表示されます。

C:\Windows\Microsoft.NET\Framework\v2.0.50727>ngen executequeueditems /nologo 致命的なエラー (HRESULT からの例外: 0x8000FFFF (E_UNEXPECTED))

4

3 に答える 3

3

質問のこの部分への答えとして:

「これらの壊滅的な失敗の原因は何ですか?」

これに答えるのに役立つ 2 つのログ ファイルがあります。

C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.log
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen_service.log

(あまり役に立ちませんが、通常のアプリケーション ログと同様)

への答え:

「生成待ちのファイルは?」

通常の答えは、これは実行することで確認できるというものです:

ngen.exe display

(私の場合、それは返すだけですが

NGEN Roots:    
Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))

)

于 2009-02-12T13:31:57.513 に答える
2

これから:_

.NET Runtime Optimization Serviceは、一時的なエラーであると判断した場合に、アセンブリのコンパイルを再試行します。例としては、RPCエラー、メモリ不足エラーなどがあります。ただし、同じアセンブリを20回コンパイルしようとしても失敗した後、上記のメッセージを出力してシャットダウンします。マシンから.NETFramework2.0をアンインストールして再インストールしようとしましたが、まだこのエラーが発生しているようです。インストールを修復しようとしても役に立たないと思います。%WINDIR%\ Microsoft.NET \ Framework \ v2.0.50727\から「ngen.exeExecuteQueuedItems」に続いて「ngen.exeUpdate」を実行してみてください。それは、そうでないすべてのアセンブリをコンパイルしようとします。最適化サービスを経由せずに、任意の/最新の32ビットNGenイメージを同期的に保持します。updateコマンドが完了したら、もう一度サービスを開始して、システムログに同じメッセージが表示されるかどうかを確認してみてください。この問題がサービスに固有のものでない場合は、コマンドライン出力にもコンパイルエラーが表示されると思います。

于 2009-02-07T19:03:48.050 に答える
1

私は同じ問題を抱えていました(Asp MVC 1.0のインストール)。答えを探していると、いくつかの理由が説明されているHaacked Blogを見つけました。これを解決しようとして2時間費やしたので、私はとてもイライラしていたので使用しました

ngen /delete *

出来た。しかし、それが小さな災害にならないかどうかはわかりません;/

多分これは役立つでしょう..

于 2009-09-02T13:43:33.637 に答える