Несколько потоков в одном потоке не будут переданы клиенту должным образом

В сервисе WCF я заполняю поток согласноэтот вопрос лайк :

   result.Stream = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(result.Stream);
            foreach (string fileN in zipFiles)
            {
                byte[] fileBytes = File.ReadAllBytes(fileN);
                writer.Write(BitConverter.GetBytes(fileBytes.Length), 0, 4);
                writer.Write(fileBytes, 0, fileBytes.Length);
            }
            writer.Flush();
            return result; 

до этого я возвращал поток этим и все работает на стороне клиента и на сервисе:

 result.Stream = new MemoryStream(File.ReadAllBytes(fileN));

Стрим бытьMessageBodyMember но орех теперь изменил его, чтобы сохранить все файлы в одном потоке.

и метод испытаний на стороне клиента:

 ExportClient export = new ExportClient("exportEndPoint");
        ExportResult_C result = export.Export(source);
        result.Stream.Position = 0;
        //result.Stream.SaveToFile("d:\\kkk.log");
        BinaryReader reader = new BinaryReader(result.Stream, System.Text.Encoding.UTF8);
        string pathToSave = string.Empty;
        while (result.Stream.Position < result.Stream.Length)
        {
            int size = reader.ReadInt32();
            byte[] data = reader.ReadBytes(size);
            pathToSave = "D:\\test\\" + new Random().Next(0, 2564586).ToString() + ".zip";
            File.WriteAllBytes(pathToSave, data);
        }

адрес конечной точки:

 <endpoint address="net.tcp://localhost:2082/Exchange/Export.svc" binding="netTcpBinding" bindingConfiguration="largeSizeStreamTcp"
    contract="xxx" name="exportEndPoint"/>

и обязательная конфигурация:

 <netTcpBinding>
    <binding openTimeout="00:00:03" maxReceivedMessageSize="2000000000" transferMode="Streamed" maxBufferSize="2000000000" >
      <readerQuotas maxDepth="32" maxArrayLength="2000000000" maxStringContentLength="2000000000" />
      <security mode="None" />
    </binding>
    <binding name="largeSizeStreamTcp"  transferMode="Streamed" receiveTimeout="00:30:00" sendTimeout="00:30:00" openTimeout="00:00:01" maxReceivedMessageSize="2000000000" maxBufferSize="2000000000" >
      <readerQuotas maxDepth="32" maxArrayLength="2000000000" maxStringContentLength="2000000000" />
      <security mode="None" />
    </binding>
  </netTcpBinding>
  <netNamedPipeBinding>

Я считаю, что конечная точка и привязка верны, так как я смог вернуть один файловый поток и сохранить его обратно, но теперь нет никаких проблем на стороне службы, но когда он получит информацию со стороны клиента, Stream потеряет свой контент, длину, позицию.

это действительно сводит меня с толку!

Кто-нибудь знает, почему это произошло (на стороне клиента)?

Ответы на вопрос(1)

Ваш ответ на вопрос