プロセスの 1 つでメモリ リーク (または v.high メモリ使用量) が発生しました。SOAP クライアントを構築するときに使用する BasicHttpBinding の設定が不適切または不十分であることが原因である可能性があります。
特に、バインディングでMaxBufferSize
、MaxBufferPoolSize
、およびを知る方法に興味があります。MaxReceivedMessageSize
デフォルト設定から変更する必要があることを提案する理由はありますか?
現在のコードはこれを行います。
var binding = new BasicHttpBinding();
binding.MaxBufferSize = 5000000; // (5,000,000)
binding.MaxBufferPoolSize = 5000000;
binding.MaxReceivedMessageSize = 5000000;
binding.ReaderQuotas.MaxStringContentLength = 500000; // (500,000)
私の質問は次のとおりです。
- これらの値が高いメモリ使用量またはリークを引き起こしている可能性はありますか?
- これらをデフォルトに戻しても安全でしょうか?
- と を設定するだけの欠点はあります
.MaxReceivedMessageSize = long.MaxValue
か.MaxStringContentLength = int.MaxValue
?
MaxStringContentLength
非常に長い文字列が受信されるため、デフォルトから増やす必要があることはわかっていますが、バッファがこれらのサイズに設定されている理由はわかりません。
どんな助けでも大歓迎です!