我有一個返回流的WCF Web服務。在客戶端,當我嘗試閱讀它使用下面的代碼,然後我得到一個異常在線「字節[]緩衝區=新的字節[outputMessage.FileByteStream.Length];」說System.Notsupported。請告訴我我在這裏做錯了什麼。獲取流長度時發生WCF異常
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循環來讀取流時? – 2010-08-30 15:23:39
是的,我不會不同意你,因爲我對此很陌生。請你能建議我一個更好的方法來做同樣的事情。 謝謝 – Amit 2010-08-30 15:28:06