Ответ 1
Вы не предоставляете много деталей, однако я почти уверен, что знаю, что проблема, как я видел, что происходит много.
Если вы пишете что-то в MemoryStream
, чтобы вернуть его в результате операции службы WCF, вам нужно вручную reset передать поток до его начала, прежде чем возвращать его. WCF будет читать поток только из текущей позиции, поэтому возвратит пустой поток, если эта позиция не была reset.
Это по крайней мере объяснит проблему, которую вы описываете. Надеюсь, это поможет.
Вот пример кода:
[OperationContract]
public Stream GetSomeData()
{
var stream = new MemoryStream();
using(var file = File.OpenRead("path"))
{
// write something to the stream:
file.CopyTo(stream);
// here, the MemoryStream is positioned at its end
}
// This is the crucial part:
stream.Position = 0L;
return stream;
}