Передать запрос обратно в 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?