Я создал приложение ASP.NET MVC 2 в Visual Studio 2008. Я установил сборку релиза, чтобы пройти через компилятор ASP.NET, чтобы предварительно скомпилировать все представления, минимизировать Javascript и CSS, очистка web.config и т. Д. Поскольку производственное развертывание идет на сервер IIS6, я настроил свое псевдопроизводственное развертывание на моем компьютере под управлением Windows 7, чтобы пул приложений выполнялся в классическом режиме с таргетингом на среду выполнения 2.0 , Я настроил обработчик без расширения в файле web.config, который необходим, и все отлично работает.Развертывание ASP.NET MVC 2 для IIS 7.5 таргетинга .NET 3.5
Проблема возникла, когда я обновил решение до Visual Studio 2010. Я по-прежнему нацелился на фреймворк 3.5, но теперь я использую MSBuild 4.0, так как это то, что использует Visual Studio 2010. Все все правильно компилируется, потому что он отлично работает под Cassini, но когда я развертываю его в одном месте (тот же пул приложений, идентификатор и т. Д.), Он теперь ведет себя по-другому. У меня все еще есть обработчик без расширения в web.config, но теперь, когда я перехожу к корню приложения, он просматривает каталоги, и все маршруты, которые он ранее обрабатывал, теперь возвращаются, поскольку 404 ошибки обрабатываются обработчиком StaticFile в IIS , Я в недоумении за то, что изменилось и вызывает перерыв.
Я просмотрел this question, но я уже проверил, что все компоненты необходимых компонентов установлены.
Это не ударять механизм маршрутизации. Это проблема. Несмотря на то, что конфигурация web.config настроена, IIS, похоже, игнорирует ее и возвращает стандарт 404. Включение трассировки IIS показывает, что обработчики и модули маршрутизации не выполняются. –
В ответ на ваше редактирование мне нужен был обработчик, когда он был скомпилирован с использованием MSBuild 3.5. В противном случае IIS не знает, как отправить страницу через механизм маршрутизации. –
hm, я немного смущен, потому что Build ничего не должен менять вообще в отношении обработки запросов. Ваша проблема, похоже, произойдет еще до того, как вы нажмете приложение. Не могли бы вы проверить, что ваш пул приложений работает в интегрированном режиме?Я должен уйти сейчас, но позже я отправлю расширенный ответ. –