【发布时间】:2010-08-30 15:04:27
【问题描述】:
我有一个返回流的 WCF Web 服务。在客户端,当我尝试使用下面的代码读取它时,我在“Byte[] buffer = new Byte[outputMessage.FileByteStream.Length];”行出现异常说 System.Notsupported。请告诉我我在这里做错了什么。
FileMetaData metaData = new FileMetaData();
metaData.ProductIDsArray = new string[] { "1", "2" };
metaData.AuthenticationKey = "test";
FileDownloadMessage inputParam = new FileDownloadMessage(metaData);
FileTransferServiceClient obj = new FileTransferServiceClient();
FileDownloadReturnMessage outputMessage = obj.DownloadFile(inputParam);
Byte[] buffer = new Byte[outputMessage.FileByteStream.Length];
int byteRead = outputMessage.FileByteStream.Read(buffer, 0, buffer.Length);
Response.Buffer = false;
Response.Buffer = false;
Response.ContentType = "application/x-zip";
Response.AppendHeader("content-length", buffer.Length.ToString());
Stream outStream = Response.OutputStream;
while (byteRead > 0)
{
outStream.Write(buffer, 0, buffer.Length);
byteRead = outputMessage.FileByteStream.Read(buffer, 0, buffer.Length);
}
outputMessage.FileByteStream.Close();
outStream.Close();
【问题讨论】:
-
那是很奇怪的代码。为什么你已经使用while循环来读取流?
-
是的,我不会不同意你的观点,因为我对此很陌生。请你能建议我做同样的更好的方法。谢谢
标签: wcf