この問題は、ドメイン内の複数のマシンで発生することがあります。ユーザーが .NET 4.0 アプリケーションを起動しましたが、何も起こりません。Windows XP を実行するマシン、.NET バージョンは 4.0.30319.1008
タスク マネージャーで確認できるように、プロセスは開始されますが、40 KB のメモリしか使用しません (たとえば 404 KB の場合もありますが、通常の実行中のプロセスではさらに多くのメモリが必要です)。このプロセスを強制終了しようとすると、システムは正常に終了したと表示しますが、プロセスはメモリに残り、.exe ファイルはロックされます。プロセスを強制終了し、ファイルのロックを解除するには、マシンを再起動するだけです。
分析にProcMonを使用しようとしましたが、イベントがほとんど表示されず、イメージをロードする前にプロセスが停止しました (イメージのロード操作は行われません)。したがって、原因は私のアプリケーション内ではありません。
回避策として、私はいくつかのことを試しました:
アプリケーションを再構築し、その場所にある .exe を置き換えます - 役に立ちます! ただし、2 つの EXE ファイルの違いは、変更された MVID GUID と、.exe に含まれるその他のコンパイル情報だけです。
したがって、クラッシュしたアセンブリのネイティブ イメージがどこかにキャッシュされているので、.exe を置き換えると、システムが再構築を開始するのではないかと考えました。私はこれに強いわけではありませんが、「ngen update」命令を試してみました - 役立つ場合もあれば、そうでない場合もあります。
しばらくすると、一部のマシンで問題が繰り返されます。
問題の原因を特定するにはどうすればよいですか?