Я в процессе написания службы 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 открывается без проблем, если я попробую, я упускаю что-то очевидное?