Использование Silverlight 3 для создания приложения для загрузки файлов. Он может загружать файлы практически любого размера - он работает (в зависимости от обстоятельств) с файлами размером 4 ГБ. Он загружает фрагменты файлов, так что, если что-то случится, загрузка может быть возобновлена с самого последнего фрагмента.Проблема с загрузкой файла Silverlight
Сведения о том, что загрузка не работает, в IE и Chrome при загрузке больших файлов. У них, похоже, проблемы с памятью. В Firefox использование памяти - это зубчатая линия - как и ожидалось, если бы она читала кусок файла, загружала его, отбрасывая, а затем снова начинала на следующем фрагменте. IE и Chrome, похоже, держатся за куски. В конечном итоге исключение OutOfMemoryException выбрасывается, когда израсходовано доступное ОЗУ.
До сих пор я пытался изменить потоки файлов и потоки веб-запросов, буферы и т. Д. Я пытался просто генерировать байты, а не читать из потока файлов - те же проблемы. Я попробовал просто написать целый кусок одновременно, а не 4kb-буфер, который мы используем сейчас - те же проблемы.
Любые идеи о том, что может произойти? Могут ли IE и Chrome просто не собирать мусор, чтобы избавиться от кусков, которые не нужны? Или есть какой-то заголовок http-запроса, который я должен использовать? Некоторые идеи о том, как определить, где используется память - в самом IE или в плагине Silverlight?
@ndim спасибо за исправление опечаток – cofiem
Можете ли вы попробовать имитировать загрузку без фактической отправки каких-либо данных, а просто просто прочитать файл в кусках, преобразовать в байты и продолжить? –
Хорошая идея ... Я вернусь к этому, когда смогу, и попробую это. – cofiem