Сейчас я пишу службу WCF, которая позволит веб-сайту ASP.Net извлекать файлы (на основе этой статьи). Моя проблема в том, что когда я возвращаю поток, он пуст.
Для простоты я выделил код в простое приложение winforms, чтобы попытаться найти, что проблема с возвратом потока, и это код:
private Stream TestStream()
{
Stream fs = File.OpenRead(@"c:\testdocument.docx");
return fs;
}
// This method converts the filestream into a byte array so that when it is
// used in my ASP.Net project the file can be sent using response.Write
private void Test()
{
System.IO.MemoryStream data = new System.IO.MemoryStream();
System.IO.Stream str = TestStream();
str.CopyTo(data);
byte[] buf = new byte[data.Length];
data.Read(buf, 0, buf.Length);
}
Результатом этого кода является то, что buf
имеет длину 12 587 байт (правильная длина файла), но он просто содержит 0.
Документ Word открывается без проблем, если я его попробую, я пропущу что-то очевидное?