Я столкнулся с точно такой же проблемой.Недостаточно памяти неизбежно, потому что вы используете байтовые массивы.
Мы сделали это для очистки данных на жестком диске, поэтому вместо ограничения вашей виртуальной памятью ваша емкость для одновременных транзакций - это HDпробел.
Затем для переноса мы просто поместили файл на другой компьютер.Конечно, в нашем случае это была передача файлов между серверами.Если вы хотите отделить одноранговый узел от сети, вы можете использовать загрузку файла по адресу http.
. Таким образом, вместо того, чтобы отвечать на файл, ваша служба может ответить URL-адресом http на местоположение файла.Затем, когда клиент успешно загрузил с сервера стандартный HttpRequest или WebClient, он вызывает метод для удаления файла.В SOAP это может быть Delete (string url), в REST это будет метод delete для ресурса.
Надеюсь, это имеет смысл для вас.Наиболее важной частью этого является понимание того, что в масштабируемом программном обеспечении, особенно если вы просматриваете 10000 клиентов (одновременно?), Вы не можете использовать ограниченные ресурсы, такие как потоки памяти или байтовые массивы.Но лучше полагаться на большие и легко расширяемые ресурсы, такие как раздел жесткого диска, который в конечном итоге может быть подключен к SAN, и ИТ-отдел может расширить этот раздел по мере необходимости.