私はTridionコアサービスにSystem.ServiceModel.WsHttpBindingを使用して接続しています。このサービスは、認証されたユーザーによってのみ使用され、たぶん私が制御するコードによってのみ使用されます。私は、次のTridionのコアサービスバインディングのクォータはどのように決定する必要がありますか?
- (デフォルト524,288バイト)
- MaxReceivedMessageSize(デフォルト65,536バイト)
- ReaderQuotasの値を選択する必要があります。 MaxArrayLength(デフォルトは16384バイト)
- ReaderQuotas。 MaxBytesPerRead(デフォルト4096バイト)
- ReaderQuotas MaxNameTableCharCount(デフォルトは16384バイト)
- ReaderQuotas。 MaxStringContentLength(デフォルト8192バイト)私は常に、例えば4Mbのために、デフォルト値よりも大きい値にこれらのうちの少なくともいくつかを設定するコアサービスを使用するために見ている
コード例。これは、デフォルトなどの他の値が使用されているときの既知の問題のためですか?
MaxBufferPoolSizeには、余分なガベージコレクションを防ぐことができます。これは単純にGCを監視し、それに基づいて調整することですか?
MaxReceivedMessageSize、MaxArrayLength、およびMaxBytesPerReadはDos攻撃から防御するため、私のシナリオでは、おそらくこれらを増やすことでスループットを向上させることができます。本当に多数の人が助けてくれますか?
MaxNameTableCharCountは、無制限に成長したくないかもしれない無制限の成長を防ぐために存在するようです。したがって、おそらくデフォルトを残すことは良いことです。
MaxStringContentLengthのドキュメントでは、クォータを超えた場合の動作は指定されていません。おそらくReadContentAsStringは何らかの方法で失敗するため、おそらくこの値は大きくなるはずです。
これらの値はデフォルトのままにしておく必要がありますか?それは私に問題を引き起こすでしょうか?それらを大きな値に増やすべきですか?それはスループットなどに役立つでしょうか、それとも他の問題を引き起こす可能性は高いですか?
いくつかの回答を読んで、これらの設定を調整することは、おそらくゼロ設定の実装(つまりコードのみ)がアンチパターンである可能性があると思われます。思考? –