Рекомендации по обеспечению больших загрузок в IIS + ASP.NET (MVC) - PullRequest
3 голосов
/ 06 декабря 2011

Мы хотим, чтобы пользователи могли загружать большие файлы из нашей системы ASP.NET MVC2.

Мы предоставляем файлы методом Controller.File, который транслируется от FileStream до Response.OutputStream. Причина, по которой мы используем Controller.File вместо предоставления прямой ссылки, заключается в том, что нам необходимо проверить правила безопасности для вошедшего в систему пользователя (проверка подлинности с помощью форм).

Что будет самым большим беспокойством при этом?

  • Безопасность : нам, вероятно, потребуется увеличить время выполнения. Обнаруживает ли это проблемы безопасности?
  • Память : Я предполагаю, что, поскольку Controller.File осуществляет потоковую передачу содержимого непосредственно с диска, последствия для памяти незначительны.
  • CPU : я читал в различных блогах, что загрузка большого объема данных сильно загружает процессор, но это были неподтвержденные утверждения, поэтому я не нашел никаких рекомендаций от MS.
  • Сеть : сколько одновременных загрузок возможно? Можем ли мы дросселировать, чтобы это не мешало другому движению?
  • Другое

Какими будут ваши рекомендации?

Какие могут быть другие варианты, кроме прохождения через конвейер ASP.NET, но они все еще предоставляют нам данные, необходимые для проверки вошедшего в систему пользователя. Говорят, что ISAPI уменьшает процессор и память, может быть, здесь есть другие преимущества?

Существуют ли какие-либо (официальные) руководящие принципы или передовые практики, касающиеся этого?

1 Ответ

0 голосов
/ 06 декабря 2011

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

Мне не известны какие-либо рекомендации, на которые я могу вас указать. Вышесказанное происходит из моего собственного опыта.

...