質問: 繰り返し発生するクラッシュ:「mscorsvw.exeで未処理のwin32例外が発生しました」。診断/修正する方法は? 最近、新しいpcを使用して、開発ツールなどを再インストールする必要がありました。pcはwindows xp(blech)を実行し、visual studio2010と.netframeworks 2.0、3.5を使用しています。 、および4.0がインストールされており、それぞれに現在のすべてのサービスパックとパッチが含まれています。windowsxp自体も最新です(次のように言えば:-)私が気付いた繰り返しの問題の1つは、次のダイアログです。このダイアログは、マシンがアイドル状態になった後にポップアップする傾向があります。ビット:クラッシュは、.net frameworkがバックグラウンドでシステムアセンブリのngenコンパイルを実行し、特に1つのアセンブリに到達するとクラッシュすることが原因であると思われます。私はmsdnフォーラムでこの問題の 別の言及 を見つけました、そして提案された回避策の1つはwindows xpのデータ実行防止機能を "必須のdepをオンにすることですwindowsプログラムおよびサービスのみ」。しかし、それはすでに私のpcで有効な設定です。どうすればさらに診断できますか?プロセスにアタッチしようとすると、すでになくなっています。他に提案された、または可能性のある修正はありますか?更新:ngen here および here に関する詳細情報を見つけました。コマンドプロンプトで次のコマンドを実行しました:ngen executequeueditems ..これにより、アイドル状態のバックグラウンドngenの実行を待つ代わりに、問題を確実に再現できるようになりました。そうするとき ngen.exe次のエントリに到達しました:compiling assembly microsoft.sqlserver.management.multiserverconnection, version=10.0.0.0, culture=neutral, publickeytoken=89845dcd8080cc91 (clr v2.0.50727) ... warning: cannot hardbind to mscorlib, version=2.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089 because dependency does not have a native image (check fuslogvw for reason) failed to generate native code for dependent image microsoft.sqlserver.management.multiserverconnection, version=10.0.0.0, culture=neutral, publickeytoken=89845dcd8080cc91 because of the following error: the remote procedure call failed. (exception from hresult: 0x800706be) ...結果は次のエラーダイアログでした:一方、ネイティブイメージの生成に失敗した他のアセンブリは、実際にはクラッシュを引き起こさず、エラーメッセージだけを引き起こしました。したがって、これが失敗している特定のアセンブリは次のとおりです:microsoft.sqlserver.management.multiserverconnection。他に何ができますか?この時点で生成できるかどうかは特に気にしません。この迷惑な繰り返しエラーダイアログを上から止めたいだけです。私はすでに試しました:ngen uninstall microsoft.sqlserver.management.multiserverconnection、...しかし、「エラー:指定されたアセンブリがインストールされていません」と表示されます。ngenqueueからアセンブリを削除する方法はありますか?ngenはそのネイティブイメージを生成しようとさえしませんか?
回答: from mscorsvw.exeとは何ですか?実行を無効にする方法 : mscorsvw .exeは、microsoft.netframeworkに関連するプロセスです。 mscorsvwプロセスは、バックグラウンドで.netframeworkアセンブリをプリコンパイルするために使用されます。 mscorsvw.exeプロセスは、.net framework再配布可能ファイルのインストール後に最も優先度の高いアセンブリをコンパイルする必要があり、.net frameworkを使用するアプリケーションをインストールしてアセンブリをコンパイルする場合にのみ、バックグラウンドで実行されます。 通常、優先度の高いアセンブリのプリコンパイルは、mscorsvw.exeプロセスによって5〜10分で実行され、コンピューターがアイドル状態のときに優先度の低いアセンブリを処理しようとします。 mscorsvw.exeの無効化または停止 案内する c:\windows\microsoft.net\framework\v2.0.50727windowsエクスプローラー。 実行ボックスにcmdと入力してコマンドプロンプトを開き、enterキーを押します。 次に、コマンドで上記のパスを指定して、次のように入力する必要があります。 ngen.exe executequeueditems そしてenterキーを押します。 ここで、プロセスがすべてのアセンブリをプリコンパイルするのを待ちます。数分後に完了します。 これで、タスクマネージャーで実行されているmscorsvw.exeプロセスがないことがわかります。 また、いつでもこのコマンドを使用して、実行を待機しているキューになっているものがあるかどうかを確認できます。ngen queue status そしてまた:ngen display キューに入れられたすべてのアイテムをクリアするには、次のようにします。ngen /delete * 問題の原因となっているアセンブリを見つけるために、これに答えるのに役立つ可能性のあるログファイル:c:\windows\microsoft.net\framework\<version>\ngen.log c:\windows\microsoft.net\framework\<version>\ngen_service.log 別の注意点として、.net frameworks 2.0および3.5は、4.0がそれらすべての代わりになると想定されているため、必要ありません。