.NET 2.0で記述されたクライアントがあります(これは変更できません)。このクライアントは、.NET 4.0 で記述された Web サービス (WCF なし、単純な asmx) と通信します。ここで、かなり大きなファイル ( 200 MB ) を Web サービスからダウンロードする必要があります。約あり得ます。1000 クライアントが同時に接続し、ダウンロードしています。ws メソッドの現在の実装は非常に単純です。ファイル全体 (ちなみにこれは XML です) が文字列としてメモリに読み込まれ、文字列が返されます。
here で提案されているように、バイト配列として読み取るのが少し良いアプローチですが、それでも間違ったアプローチだと思います。大きなファイルはまだメモリ内にあります(base64などで乗算されます)
最良の方法は、streamingを使用することです。WCF がストリーミングに対応していることはわかっていますが (たとえばhere )、クライアント (.NET 2,0) は何らかの方法で .NET 3.0 の機能を (そのアセンブリを使用して) 使用する必要があるため、WCF はおそらく私たちには不可能です。 WCF から)、厄介な可能性があります。
サーバーがそのような大きなファイルの非常に多くのダウンロードをサーバーできるようにする方法はありますか?