Передать запрос обратно в IIS внутри ActionResult - PullRequest
2 голосов
/ 01 ноября 2011

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

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 01 ноября 2011

Почему бы вам не использовать Redirect или RedirectPermanent?

...