Как отправить большой файл от клиента к серверу Используя WCF?

Это не глупо, но дело вкуса. Широкий экран в портрете очень хорош для написания кода, ширина кода действительно никогда не была проблемой и способностью видеть, что больше строки кода на экране всегда хорошо.

другая причина поместить широкий экран в портрет так, это соответствует высоте Вашего другого монитора, например, 30-дюймовый широкий экран рядом с 22-дюймовым широким экраном в портрете имеет близко к той же высоте.

5
задан svick 24 August 2011 в 10:19
поделиться

2 ответа

Вы можете ознакомиться с функцией WCF Streaming .

2
ответ дан 13 December 2019 в 22:11
поделиться

Вам необходимо проверить потоковую передачу, как уже указывал Дмитрий.

Чтобы иметь возможность отправлять большие файлы в виде потока на вашу службу, вам необходимо:

  • создать метод службы, который принимает Stream в качестве входного параметра
  • , создать конфигурацию привязки (как на сервере, так и на клиенте), которая использует transferMode = StreamedRequest
  • , создает поток в ваш клиент и отправьте его методу службы

Итак, во-первых, вам понадобится метод в контракте службы:

[ServiceContract]
interface IYourFileService
{
   [OperationContract]
   void UploadFile(Stream file)
}

Затем вам потребуется конфигурация привязки:

<bindings>
  <basicHttpBinding>
    <binding name="FileUploadConfig"
             transferMode="StreamedRequest" />
  </basicHttpBinding>
</bindings>

и конечная точка службы в вашей службе, использующая эту конфигурацию привязки:

<services>
  <service name="FileUploadService">
     <endpoint name="UploadEndpoint"
               address="......."
               binding="basicHttpBinding"
               bindingConfiguration="FileUploadConfig"
               contract="IYourFileService" />
  </service>
</services>

, а затем в вашем клиенте вам нужно открыть, например, файловый поток и отправить его в метод службы, не закрывая его.

Надеюсь, что это поможет!

Marc

6
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: