Я думаю, что вы можете избежать одновременного хранения всех данных в памяти, выполнив несколько действий.
- настроить службу WCF на использование потокового TransferMode
- Обрабатывать потоки соответствующим образом в коде.т. е. открыть поток в хранилище больших двоичных объектов, а затем скопировать его из потока WCF в поток больших двоичных объектов или использовать Stream.CopyTo () .
Я пытался реализоватьэто было около 6 месяцев назад, но я не мог заставить режим WCF Streamed работать должным образом в моей ситуации.Кажется, что это сложно для работы, и может быть невозможно с конечными точками HTTP.С другой стороны, возможно, мой WCF-фу слишком слаб.Если у вас что-то получится, пожалуйста, опубликуйте это здесь, так как мне бы очень хотелось это увидеть.
Обратите внимание, что если несколько клиентов загружают одни и те же данные одновременно, вы можете хранить одну копию в памяти и передавать ее каждому из них независимо.Но я не верю, что этот подход совместим с методом, который я только что описал - вам придется сделать один или другой.