Передать запрос обратно в IIS внутри ActionResult

Я почти уверен, что ответ "вы не можете сделать это", но если это так, ASP.NET MVC ужасно ошибочен.

У меня есть ActionResult, который должен обслуживать статический файл (имя файла определяется в коде). По соображениям производительности (а также потому, что мне не хочется повторно реализовывать спецификацию HTTP для байтов принятия и кэширующих заголовков), я хочу передать запрос в IIS. Как и context.RewritePath() из HttpModule, когда вы даете ему имя статического файла.

За исключением того, что это должно происходить внутри ActionResult, а не во время PostAuthorizeRequest.

Глядя на классы FileStreamResult и FilePathResult, очевидно, что они реализуют только HTTP 200. TransmitFile() хорош и все, но это не кэширование в ядре, и он не обрабатывает байты Accept, If-Modified-Since или Etags,

Нам почти для декодирования сказали, насколько лучше IIS в обслуживании файлов, и насколько важен Integrated Pipeline, насколько злым подстановочным знаком на IIS6 было для производительности и т. Д.

Теперь мы снова находимся в той же лодке - никоим образом нельзя позволить IIS обслуживать статический файл из ActionResult. (НЕТ, TransmitFile не считается).

Я даже начал видеть, что MS рекомендует размещать статический контент на отдельном сервере.

Пожалуйста, скажите мне, что я неправ, что где-то есть магический метод, который делает это. Или Интегрированная Мечта Трубы была убита MVC?

1 ответ

Почему ты не используешь Redirect или же RedirectPermanent?

Другие вопросы по тегам