私は誰かがこのエラーを引き起こしている可能性があるものについて私を啓発してくれることを願っています:
保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。
このエラーはアプリケーションの任意のランダムな領域でスローされるようなので、実際にコードをポストすることはできません。アプリケーションは、エラーをスローする前に12〜48時間実行されます。一見ランダムなスポットで停止して上記のエラーをスローする場合もあれば、アプリケーション全体が停止し、「致命的なエラーが発生しました... CLRのバグまたは...」PInvokeやその他の関連性のない情報についての何か。これが発生すると、すべてのスレッドが終了したと表示され、利用可能なデバッグ情報はありません。
一言で言えば、これはアプリケーションが行うことです:
完全にC#で記述されたマルチスレッドサーバーアプリケーション。クライアントはソケット経由でサーバーに接続します。サーバーは、クライアントが相互に、また環境と対話できる仮想の「環境」を実行します。かなりのメモリを消費しますが、リークは発生しません。通常、約1.5 GBを消費します。アプリケーションが実行されている間、メモリ使用量は比較的一定に保たれるため、リークが発生するとは思いません。クライアントが何もしていなくても、環境を維持するために常に実行しているコード。サードパーティのソフトウェアやその他のAPIは使用していません。このアプリケーションが使用する唯一の外部リソースは、ソケット接続とSQLデータベース接続です。64ビットサーバーで実行されています。.net 2.0、3.5、および4を使用して、VS2008およびVS2010でこれをデバッグしてみました。
コンパイラの最適化といくつかのMicrosoftホットフィックスをオフにしてみました。この問題を解消するものは何もないようです。誰かが考えられる原因、または問題の原因を特定するための何らかの方法を知っていれば幸いです。