Przekazywanie strumienia między WCF'ami

0

WCF1 dostaje strumień, z którym nic nie robi, tylko przekazuje do WCF2. I gdzieś tracę strumieniowanie, a wiadomość jest buforowana.
Oczywiście obie metody używająMessageContract, strumień jest jedynym elementem body, inne dane w nagłówku. Bindingi z Mtom i transferMode streamed, wszystkie quota'y bufory podbite, użyty httpBasicBinding (tcp nie mogę, póki co).

w WCF1 w uproszczeniu wygląda to tak

 
void Upload1(UploadRequest req)
{
  using (var client2 = ...)
  {
    client2.Upload(new UploadRequest2 {
      File = req.File,
      FileName = req.FileName,
      FileLength = req.FileLength,
      ...
    });
  }
}

gdzie UploadRequest wygląda tak:

 
    [MessageContract]
    public class UploadRequest
    {
        [MessageHeader]
        public string FileName { get; set; }
        [MessageHeader]
        public long FileLength { get; set; }
        [MessageBodyMember]
        public Stream File { get; set; }
    }

Nie odkryłem co dokładnie powoduje buforowanie, czy "przepisanie" strumienia z UploadRequest do UploadRequest2, czy coś naknociłem w bindingu między WCF1 a WCF2. Binding wygląda tak:

        <binding name="bindingBigStreams" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="104857600" maxBufferPoolSize="104857600" maxReceivedMessageSize="104857600" messageEncoding="Mtom" textEncoding="utf-8" transferMode="Streamed" useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="104857600" maxArrayLength="104857600" maxBytesPerRead="8388608" maxNameTableCharCount="104857600" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
          </security>
        </binding>
 
0

W WCF2 strumień czytam BinaryReader'em i zapisuję do strumienia docelowego (pliku).

1 użytkowników online, w tym zalogowanych: 0, gości: 1