私はRESTful WCFサービスを使用しています。サービスメソッドの1つがbyte [](ファイルを含む)を返します。安心なWCFサービス - バイト[]を返すか?
クライアント側では、特定のサービスメソッドを呼び出すためにWebRequestクラスを使用するコードがあります。 WebRequestクラスを使用して、私は次のように応答ストリームを取得しています:このストリームから
Stream stream = webReq.GetResponse().GetResponseStream();
、私はその後、バイト[]を再構築して、ローカルファイルを出力しています。問題は、クライアント側の再構築ファイルがサービス側から返されたファイルに似ていないことです(サービス側から送信されたものよりもサイズがはるかに大きい破損したPDFファイルが取得されます)。サービスメソッドがバイト[]を返す直前に、サービス側のディスクにそのバイト[]を出力し、ファイルを正常に作成しました...これは、バイト[]とクライアント側を返すそのメソッド間で何か問題があることを示します
public static byte[] ReadFully(Stream input)
{
byte[] buffer = new byte[16*1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
任意のアイデア:ストリームからバイト[]を再構築するために...クライアント側でストリームからバイト[]を再構築する、私は誰かがstackoverflowの上、過去に投稿された以下の方法を使用しています何がうまくいかないだろうか?
サービスのスケルトンとその設定をサービスの設定ファイルから投稿できますか? – Rajesh