WCF Потоковая передача файлов - PullRequest
2 голосов
/ 18 декабря 2009

Я пытаюсь передать некоторые файлы через WCF, но как только метод вызывается из клиента, я получаю следующее сообщение:

The socket connection was aborted. This could be caused by an error processing
your message or a receive timeout being exceeded by the remote host, or an 
underlying network resource issue. Local socket timeout was '00:10:00'.

Мой метод обернут в try...catch, поэтому, если что-то вызывает исключение из метода на сервере, он должен записать его в консольное окно, но ничего не регистрируется. Я также попытался запустить сервер локально и установить точки останова для метода, и метод, похоже, просто не вызывается.

Есть ли свойство или что-то, что нужно установить в соединении net.tcp, чтобы разрешить потоковую передачу на стороне клиента?

Ответы [ 2 ]

4 голосов
/ 18 декабря 2009

Есть ли собственность или что-то, что необходимо установить соединение net.tcp с разрешить потоковую передачу на стороне клиента?

Да, конечно! Вам необходимо настроить конфигурацию на стороне клиента для использования потоковой передачи - либо в одном направлении ( StreamedRequest , если вы хотите загрузить материал на сервер, либо StreamedResponse , если вы хотите загрузить с сервер, или просто Потоковый , если вы транслируете в обоих направлениях).

<system.serviceModel>
  <bindings>
    <netTcpBinding>
      <binding name="streaming" 
          transferMode="StreamedResponse">
      </binding>
    </netTcpBinding>
  </bindings>
  <client>
    <endpoint name="StreamEndpoint"
              address="..."
              binding="netTcpBinding"
              bindingConfiguration="streaming"
              contract="IYourService" />
  </client>
</system.serviceModel>

Вам необходимо определить конфигурацию привязки под именем (как хотите), а затем сослаться на эту конфигурацию в <endpoint>, указав это имя в атрибуте bindingConfiguration=.

См. Страницы документации MSDN на Как: включить потоковую передачу для получения более подробной информации.

0 голосов
/ 18 декабря 2009

вы должны настроить трассировку на сервере и открыть журнал для лучшего объяснения происходящего.
Взгляните на Service Trace Viewer Tool

...