Вы пишете в поток, а затем сразу же пытаетесь прочитать с него без перемотки ... так что нет данных для чтения.
К счастью, в любом случае есть очень простой способ упростить код:
byte[] file = stream.ToArray();
Однако у вас есть еще одна потенциальная проблема:
byte[] storage = new byte[500000];
using (MemoryStream stream = new MemoryStream(storage))
...
Это позволит MemoryStream
иметь фиксированный фиксированный размер 500K - не больше, не меньше. Я подозреваю, что это не то, что вы хотите; Я предлагаю вам избавиться от переменной storage
и просто вызвать конструктор MemoryStream
без параметров.