私はメモリオーバーフローを処理する方法や解決策を探しています。メモリがオーバーフローしたとき、またはある値を超えたときにサービスを再起動する可能性があります。それが死ぬ前にいくつかの仕事をしてください。
これは正常な状況ではなく、すべてのエラーがメモリオーバーフローを修正する必要があることを私は知っていますが、問題が発生した後、サービスが回復することを確信する必要があります。
UPD 私はWindowsサービスを持っています。このサーバーは、クライアントからの多くの接続を受け入れます。クライアントは、メモリ消費につながるいくつかのアクションを実行します。リークするのではなく、クライアントの要求を処理するためにメモリを消費するだけです。ある時点(ピーク負荷)では、RAMが十分ではありません。これは大きな問題ではありません。問題は、最初のメモリオーバーフロー後、例外サービスが何も処理できないことです。メモリオーバーフロー例外でいっぱいのログがあります。自己再起動せず、クライアント要求を処理せず、この状態を終了しません。
サービスのこの状態を終了する方法を見つけたいだけです。サービスを再開できない場合。そのような状態を予測することが可能であれば。
最初の方法はクライアントを制限することですが、一部のクライアントが大量のメモリを消費することは保証されていません。
危険なメモリ消費を検出して新しいクライアントの処理を停止したり、正しく再起動したりすることは可能ですか?メモリがなくなった場合、サービスをセルフリスタートすることは可能ですか?