Назад | Перейти на главную страницу

Какие расширения файлов должны быть разрешены при фильтрации запросов при использовании ASP.Net MVC 3?

У меня включена фильтрация запросов, а для параметра «Разрешить расширения имен файлов, не указанных в списке» установлено значение false. При запросе любого нормального пути, включая "http: // localhost«Я получаю ошибку 404.7 -« Модуль фильтрации запросов настроен на запрет расширения файла ».

Если я установлю для параметра «Разрешить расширения имен файлов, не указанных в списке» значение true, сайт будет работать нормально.

Я знаю это "http: // localhost /"сопоставления с Views / Homes / Index.cshtml" и .cshtml явно разрешены.

Я пытаюсь выяснить, какое расширение файла вызывает проблему, но ничего не могу найти в журналах. У меня разрешены все 55 типов файлов по умолчанию.

Попробуйте просто "." как расширение файла. Кажется, это работает на коробке Windows 2008 R2 SP1 с ASP.NET 4.

Я нигде не видел этого документированного, но он следует тому же правилу, что и сопоставления обработчиков для URL-адресов без расширений, которые были введены в ASP.NET 4 / W2K8 R2 SP1 (см. Значение атрибута пути в обработчиках в web.config вопрос).

Я думаю, что то, что вы пытаетесь сделать, невозможно.

MVC не использует расширения файлов. Установив для параметра «Разрешить неуказанные расширения имен файлов» значение false, вы ограничиваете IIS обслуживанием только перечисленных расширений. Поскольку вы не можете добавить «расширение без расширения», IIS отклоняет запрос.

Другими словами, если вы хотите использовать MVC, вам необходимо установить для параметра «Разрешить неуказанные расширения имен файлов» значение true.

Вам не нужно разрешать .cshtml, вы даже можете запретить доступ к нему, MVC по-прежнему работает, потому что файлы представления не обслуживаются напрямую IIS, читаются MVC и затем отправляются через IIS клиенту.