Сознайтесь, что вы невнимательно прочитали статью.
Microsoft тут не причем, во всем виноват RFC :) Согласно ему ваша попытка засунуть русские имена в Content-Disposition — это несоответствие стандарту.
У вас есть ответ на вопрос, почему Exception выбрасывается не на всех русских буквах?
Если бы вы сразу посмотрели на существующие на рынке решения, то увидели бы, что практически все по этим граблям уже прогулялись и используют загрузку чанками.
Поверьте мне на слово, мы изучили много вменяемых решений, но как-то не встречали упоминания о том, что именно из соображений невозможности загрузить файл целиком загрузка сделана чанками.
Это решает и проблемы с Content-Range, и с хэшированием, и упрощает отображение прогресс-бара (если бы файловые сессии хранились на сервере, то простыми AJAX-запросами к простенькому же хэндлеру это реализуется без проблем), и дает возможность многопоточной загрузк, и еще много всяких фенек.
Могу поспорить, что вы не смотрели код, в противном случае теряюсь в догадках, к чему эта фраза относится.
То, что для отображения прогресса от 0% до 100% файл размером 10 000 000 байт нужно разделить на 100 чанков по 100 000 байт каждый.
Но делать слишком маленькие, либо наоборот, слишком большие чанки, не оправданно. Поэтому файл размером 500 000 байт мы делим на 10 чанков по 50 000 байт, при этом отображается прогресс с шагом 10%. А файл размером 1 000 000 000 байт мы делим на 2000 чанков по 500 000 байт каждый для того, чтобы в случае сбоя загрузки терять в среднем 250КБ.
У вас не отображается прогресс в виде бегущих процентов?
Возможно, у вас просто не успел инициализироваться silverlight-модуль.
Наш загрузчик — это результат более чем 2-летнего «вылизывания» кода, и он автоматически откатывается по цепочке silverlight -> flash -> iframe даже при наличии банерорезок. Для отката предусмотрен механизм таймаутов, в течении которых мы ждем инициализации плагинов (Silverlight и Flash). Если у вас установлена банерорезка или какой-либо прокси между вами и нашим сервером «режет» контент, то вполне возможно, что произошел откат до iframe-варианта, над отображением процентов в котором мы даже не заморачиваемся.
Сознайтесь, что вы невнимательно прочитали статью.
У вас есть ответ на вопрос, почему Exception выбрасывается не на всех русских буквах?
Поверьте мне на слово, мы изучили много вменяемых решений, но как-то не встречали упоминания о том, что именно из соображений невозможности загрузить файл целиком загрузка сделана чанками.
Могу поспорить, что вы не смотрели код, в противном случае теряюсь в догадках, к чему эта фраза относится.
То, что для отображения прогресса от 0% до 100% файл размером 10 000 000 байт нужно разделить на 100 чанков по 100 000 байт каждый.
Но делать слишком маленькие, либо наоборот, слишком большие чанки, не оправданно. Поэтому файл размером 500 000 байт мы делим на 10 чанков по 50 000 байт, при этом отображается прогресс с шагом 10%. А файл размером 1 000 000 000 байт мы делим на 2000 чанков по 500 000 байт каждый для того, чтобы в случае сбоя загрузки терять в среднем 250КБ.
Возможно, у вас просто не успел инициализироваться silverlight-модуль.
Наш загрузчик — это результат более чем 2-летнего «вылизывания» кода, и он автоматически откатывается по цепочке silverlight -> flash -> iframe даже при наличии банерорезок. Для отката предусмотрен механизм таймаутов, в течении которых мы ждем инициализации плагинов (Silverlight и Flash). Если у вас установлена банерорезка или какой-либо прокси между вами и нашим сервером «режет» контент, то вполне возможно, что произошел откат до iframe-варианта, над отображением процентов в котором мы даже не заморачиваемся.