保護されたメモリの読み取りまたは書き込みを試行しました。これは、他のメモリが破損していることを示すことが多いです。質問する

保護されたメモリの読み取りまたは書き込みを試行しました。これは、他のメモリが破損していることを示すことが多いです。質問する

このエラーの原因が何なのか、誰かが教えてくれることを願っています。

保護されたメモリの読み取りまたは書き込みを試行しました。これは、他のメモリが破損していることを示すことが多いです。

このエラーはアプリケーションの任意の場所で発生するようなので、コードを投稿することはできません。アプリケーションは、エラーが発生するまで 12 ~ 48 時間実行されます。一見ランダムな場所で停止して上記のエラーが発生する場合もあれば、アプリケーション全体が停止して、「... で致命的なエラーが発生しました。これは、CLR または... のバグである可能性があります」といった内容のエラー画面が表示される場合もあります。PInvoke に関するものや、その他の無関係な情報に関するものなどです。このエラーが発生すると、すべてのスレッドが終了し、デバッグ情報は使用できません。

簡単に言うと、アプリケーションが行うことは次のとおりです。

これは完全に C# で書かれたマルチスレッド サーバー アプリケーションです。クライアントはソケット経由でサーバーに接続します。サーバーはクライアント用の仮想「環境」を実行し、クライアントはそこで互いに、また環境と対話できます。かなりのメモリを消費しますが、メモリ リークは見られません。通常、約 1.5 GB を消費します。メモリ使用量はアプリケーションの実行中ずっと比較的一定であるため、メモリ リークは発生していないと思います。クライアントが何もしていなくても、環境を維持するためにコードが常に実行されます。サード パーティ ソフトウェアや他の API は使用されません。このアプリケーションが使用する外部リソースは、ソケット接続と SQL データベース接続のみです。64 ビット サーバーで実行されています。VS2008 および VS2010 で .net 2.0、3.5、4.0 を使用して複数のサーバーでデバッグを試みましたが、それでも結局は問題が発生します。

コンパイラの最適化といくつかの Microsoft ホットフィックスをオフにしてみましたが、この問題が解決することはないようです。考えられる原因や、問題の原因を特定する方法を知っている方がいらっしゃいましたら、教えていただけると幸いです。

ベストアンサー1

私は、MapInfo DLL を使用する VS 2013 .NET 4.5 でこの問題に直面しました。結局、問題は、ビルドのプラットフォームを x86 から任意の CPU に変更したことで、このエラーが発生する原因となっていました。x86 に戻すと、問題は解決しました。誰かの役に立つかもしれません。

おすすめ記事