ASP.NET MVC маршрутизация и путь к файлу - PullRequest
3 голосов
/ 21 августа 2010

У меня есть действие контроллера, имя которого совпадает с именем пути к файлу.Например:

www.example.com/userfiles/path/to/userfile.jpg

В основном у меня есть контроллер пользовательских файлов, и в действии index все, что после пользовательских файлов / - это путь.В корне моего приложения есть также виртуальный каталог пользовательских файлов.Я хочу, чтобы это произошло, если каталог, следующий за userfiles / (в данном случае path), не существует в виртуальном каталоге userfiles, тогда используйте действие index для userfilesController, если каталог существует, а затем используйте путь как есть.,

Это работало безупречно на моем компьютере с Windows XP, работающем под управлением iis 5. Но, как только я переместил его на работающий сервер (Windows Server 2003 iis 6), я получаю ошибку 404, как будто путь не существуетчем перейти к индексу действия контроллера пользовательских файлов.

В файле маршрутов, который у меня есть:

routes.MapRoute(
    "Userfiles",                                       // Route name
    "userfiles/{*url}",                                // URL with parameters
    new { controller = "Userfiles", action = "Index" } // Parameter defaults
);

Чего мне не хватает?Это работало так хорошо.

Ответы [ 2 ]

1 голос
/ 24 августа 2010

Итак, я обнаружил, что моя проблема была в том, что у нас действительно было включено сопоставление по шаблону для сайта, однако мы также отключили его для некоторых каталогов из-за производительности. Я снова включил подстановочный знак для рассматриваемого каталога, и все стало работать так же, как на моем устройстве dev. Радость!

0 голосов
/ 20 октября 2012

Я знаю, что на это уже ответила мысль, что это может кому-то помочь.В вашем web.config вам может понадобиться добавить runAllManagedModulesForAllRequests = "true"

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...