2012-03-08 12 views
0

HTTPメッセージでファイルを送信するためのしきい値が30MB以上のWCFサービスがあり、その値を超えるものはファイルコピーによって転送され、パスは呼び出し元に返されます。顧客はそれが遅すぎると訴えたので、私たちはそのファイルコピーを排除するように要求されました。そのため、WCF/HTTP経由でバイナリコンテンツを送信する際のサイズ制限を取り除くことが決定されました。WCF/Httpを超えるバイナリコンテンツの長さの最大値

私の質問は - それはどれくらい信頼できますか? 1つのWCFメッセージ内の2GBファイルをプッシュすることによって、どのようなタイプの問題が発生するのでしょうか?

ありがとうございます!

答えて

3

WCFのMaxReceivedMessageSizeをWCFサービスの十分高い値に設定すると、そのサービスを通じてかなり大きなファイルをプッシュできます。最大値はint64.MaxValue = 9,223,372,036,854,775,807なので、2GB メッセージをカバーするように値を設定する必要があります。

MaxBufferSizeを制御して、あまりメモリに格納しないようにしたい場合があります。できるだけバイナリ効率の高いMTOMメッセージエンコーディングに切り替えることを検討してください。バイナリファイルがエンコードされた後のメッセージのサイズは、MaxReceivedMessageSizeによってになります。つまり、サービス経由で送信できる元のバイナリファイルのサイズは2GBより小さくなります。

MSDNには、WCFを介して大量のデータを送信し、何を見ているかをカバーする非常に良い記事があります:Large Data and Streaming

編集:

)許可の最大値は、実際にInt64.MaxValueで判明
関連する問題