Поток памяти и куча больших объектов

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

Поскольку я хочу иметь возможность возобновить файл и не хочу, чтобы размер моего файла ограничивался WCF, я делю файлы на части по 1 МБ. Эти «чанки» транспортируются как поток. Который пока работает довольно хорошо.

Мои шаги:

открытый файловый потокпрочитать фрагмент из файла в byte [] и создать поток памятипередать чанквернуться к 2. пока весь файл не будет отправлен

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

Теперь я не хочу отправлять byte [] в сообщении, так как WCF скажет мне, что размер массива слишком велик. Я могу изменить максимально допустимый размер массива и / или размер моего чанка, но я надеюсь, что есть другое решение.

Мой фактический вопрос (ы):

Будет ли мое текущее решение создавать объекты на LOH, и это вызовет у меня проблемы?Есть ли лучший способ решить эту проблему?

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

Редактировать:

текущее решение:

for (int i = resumeChunk; i < chunks; i++)
{
 byte[] buffer = new byte[chunkSize];
 fileStream.Position = i * chunkSize;
 int actualLength = fileStream.Read(buffer, 0, (int)chunkSize);
 Array.Resize(ref buffer, actualLength);
 using (MemoryStream stream = new MemoryStream(buffer)) 
 {
  UploadFile(stream);
 }
}

Ответы на вопрос(1)

Ваш ответ на вопрос