WCFのバッファサイズ制限
WCFを使用するアプリケーションを開発していたところ,大容量のデータを転送したところで,失敗した.
デフォルト バッファサイズが決まっている.
WCFを使用するアプリケーションを開発していたところ,大容量のデータを転送したところで,失敗した.が,これまでまともに設定ファイルなどいじったことがないため焦ってしまった.
デフォルト バッファサイズが決まっているので,maxBufferSizeとmaxReceivedMessageSizeを設定する必要がある.
参考「WCFで大きなデータを送受信するさいに注意する設定値(クオータ)のメモ」
これら2つの数値は,2つあるので別々だと思っていたが,異なる値を設定すると失敗した.
WCFの導入までは何の苦労もなくできてしまうので,いったん躓くとつらい.
名前付きパイプを使っていたので今回はこれでよいのだが,HTTPなどを使用する場合には,安易にバッファサイズを大きくすることは攻撃に弱くなったり,意図しない再送・ハイレートの転送でシステムがダウンする恐れが高まるということで,バッファを超えたら分けて送付というやり方の方が本当は良いのかもしれない.