開発された新しいアプリケーションは、Web サービスを多用しています。定期的にメモリ不足の例外が発生するようになりました (使用量の増加に伴い)。メモリ ダンプを確認すると、同じサイズのバイト [] が多数あることに気付きました。これらの byte[] のハンドルを見ると、それらが System.Security.Policy.Evidence によって参照されていることに気付きました
さらに調べてみると、これらのメモリ割り当ては、Web サービス クラスを含む実際のアセンブリ (dll) であることがわかりました (特にアセンブリのうちの 2 つは 128 回と 115 回メモリ内にありました)。ここでいくつかの情報を見つけました --> blogs.msdn.com/tess/archive/2008/06/25/asp-net-memory-leak-byte-arrays-rooted-in-system-security-policy-evidence.aspx
そしてここ --> blogs.javista.com/2009/03/18/best-practices-for-crm-memory-usage/
しかし、この問題に関する他の多くの参照を見つけることができませんでした。(セキュリティ ポリシーをチェックするために Web サービス アセンブリをメモリにロードする .NET フレームワーク)。
現在、私が目にしている唯一の解決策の 1 つは、Web サービスのアセンブリを、ライブラリを参照する小さなアセンブリに分離することです。
ポリシーをチェックするために .NET フレームワークがアセンブリ全体をメモリにロードする必要がある理由がわかりません。他の誰かがこれに遭遇したかどうか、およびあなたのソリューションが何であるかを確認したかったのです。
ありがとう、ダン