Ошибка 404 на сайте MVC
У меня есть веб-сайт IIS7.5 в Windows Server 2008 с развернутым веб-сайтом ASP.NET MVC2. Веб-сайт был построен в Visual Studio 2008 и предназначен для.NET 3.5, а IIS 5.1 был успешно настроен для его запуска и для локального тестирования.
Мы установили самое простое в мире приложение MVC (то, которое создается при создании нового проекта MVC2 в Visual Studio), и мы получаем 404 с на любой странице, к которой мы обращаемся - например, <my_server>/Home/About
сгенерирует 404.
Я также задавал этот вопрос в StackOverflow, но это было до того, как я понял, что это проблема с сервером.
Я проверил следующие вещи:
- В журнале IIS имеется 404 записи, соответствующих каждому запросу.
- Пул приложений для веб-сайта настроен на использование Интегрированного конвейера.
- Режим customErrors выключен.
- .NET 3.5 SP1 установлен
- ASP.NET MVC 2 установлен
- Я использовал MVC Diagnostics для подтверждения того, что все MVC DLL найдены.
- ASP.NET включен в IIS, что мы продемонстрировали, запустив страницу диагностики MVC.
- В KB 2023146 действительно было указано, что перенаправление HTTP отключено, поэтому мы его включили, но не радостно.
Любые идеи будут с благодарностью!
Кто-то предположил, что могут быть проблемы с его запуском из-за 64-битной Windows Server 2008 - кто-нибудь знает что-нибудь об этом?
2 ответа
Наконец, мы решили эту проблему, экспортировав конфигурацию IIS работающего сервера и сравнив ее с нашей.
Это была действительно неясная настройка, которая была изменена по умолчанию.
IIS ROOT → Фильтрация запросов → Вкладка "Расширения имени файла" → "Редактировать настройки компонента" → Разрешить добавление имен файлов в список
Это должно быть отмечено.
Это может быть установлено на уровне IIS или на уровне сайта.
Первое, что нужно подтвердить, - это исправление URL-адреса без расширения: http://support.microsoft.com/kb/980368.
Это должно сработать, но если нет, правильно ли работает простая страница test.aspx?
Независимо от того, 32-разрядный или 64-разрядный, не имеет значения для ASP.NET MVC. Это полностью поддерживается в обоих.