2

私の質問はちょっと意地悪ですが、MaxReceivedMessageSizeなどのWCFクォータの「最適な」設定は何でしょうか。

私のサービスはほとんどの場合小さな値を返しますが、戻り値がデフォルトのクォータを超える場合があります。さらに大きな戻り値があり、2番目のエンドポイントでストリームとして返します。

現在、MaxReceivedMessageSizeのデフォルト値(間違いなく、ストリーミングされたエンドポイントはより高い値を使用します。私の質問はバッファリングされた通信に関するものです)は65536バイトと非常に低いと思います。この値をInt32.MaxValueに設定するだけの「チュートリアル」がたくさんありますが、これはまったく良い考えではありません;)さて、あなたはどう思いますか?どの値が実行可能であるが、DoSやその他のものに対してサービスが脆弱にならないように十分に安全ですか?

よろしく

4

1 に答える 1

0

Vialbe の値は、期待するデータのサイズに大きく依存します。場合によっては最大 256KB になることがわかっている場合は、値を 256KB に設定します。内部サービスの場合、制限はおそらく に設定できますがInt32.MaxValue、転送されたデータについて仮定することの怠惰に関するものだと思います。Int32.MaxValueパブリック Web サービスの場合、だれでもサーバーを爆破できるため、値を に設定することはほとんどありません。

ところで。サービスから返されるデータについて話している場合、この決定はクライアントにあります-クォータとMaxReceiveMessageSizeメッセージを受信するターゲットの両方がメッセージを送信しないため、サービスがクライアントの要求に応答してデータを返す場合、クライアント側で制限が設定されます. たとえば、パブリック Web サービスの場合、すべてのクライアントを制御できるわけではないため、返すデータの量も考慮する必要があります。

個別のエンドポイントは、クライアント側とサーバー側の両方で個別の構成です。

于 2011-04-04T20:24:01.493 に答える