悪名高いメモリ リークの問題が時々発生する従来の C++ アプリケーションは、.Net サーバー ベースの Windows アプリケーションから呼び出す必要があります。.Net ガベージ コレクションの時間は決定できず、C++ オブジェクトが破棄されるか、「時間通りに」破棄されない場合があり、予測できない結果が生成され、通常は C# Web アプリがクラッシュします。C++ オブジェクトをできるだけ頻繁にガベージ コレクション スタックにプッシュする最善の方法は何ですか。ただし、COM オブジェクトへの .Net 参照を削除するほど頻繁ではありません。COM オブジェクトはサブオブジェクトを生成できるため、COM オブジェクトの .Net 参照カウントは関数呼び出しだけで変更でき、インスタンス化とは限らないことに注意してください。
メモリ リークが発生し、COM オブジェクトがクリーンアップされないため、IIS が数回トリップしてクラッシュするほどパフォーマンスが低下します。IIS を再起動すると、次回まで問題が修正されます。定期的な再起動は役に立ちますが、忙しい日は営業日中にこれを引き起こす可能性があります.
数年前に.Net 1.1を使用してこれを解決する必要がありました。他の誰かが私の解決策またはより良い解決策を持っているかどうか疑問に思っています。これは ASP.NET ではありません。これは .Net dll です。
最終結果は完全に満足できるものではなく、Web サーバーは数か月ごとにクラッシュしました。