Zip ファイル (50MB) を含むバイト配列を要求したクライアントに返す WCF サービスがあります。Zip が非常に小さい (1 MB など) 場合、SOAP 応答はバイト配列が埋め込まれた WCF から送信されます。しかし、1MB のファイルでも応答サイズは非常に大きくなります。50MB のファイルを転送しようとすると、SOAP 応答のサイズが大きくなるため、サービスがハングし、メモリ不足の例外がスローされます。
バイト配列を送り返すときに、WCF / Web サービスで大きなファイル (主に ZIP 形式) を転送するための最良のオプションは何ですか。ファイルを返送する代わりに、何か良い方法はありますか?
WCF / Web サービスが大きなファイルを任意のクライアントに転送するための最良の方法であるかどうか、または 10,000 ユーザーの相互運用性とスケーラビリティを達成できるように利用可能な他のより良いオプション/テクノロジはありますか?
私のCコードは以下です:
String pathfordownload = @"D:\New Folder.zip";
FileStream F2D = new FileStream(pathfordownload, FileMode.Open,FileAccess.Read);
BinaryReader binReader = new BinaryReader(F2D);
binReader.BaseStream.Position = 0;
byte[] binFile = binReader.ReadBytes(Convert.ToInt32 (binReader.BaseStream.Length));
binReader.Close();
return binFile;
私は Google で利用可能なすべてのデータに苦労しており、先週は良い結果が得られなかったので、実用的な/実際の情報は非常に役立ちます.