Я пытаюсь развернуть приложение ASP.NET MVC 3 на сервер x64 для Windows 2008 (очевидно, работает с IIS 7.0), и IIS не хочет правильно обслуживать контент. Все запросы приводят к ошибке 404.0, потому что запросы не соответствуют любому обработчику, и IIS пытается использовать обработчик StaticFile для обслуживания запросов. Проблема, похоже, связана с .NET 4.0, так как приложение MVC 2 работает отлично в пуле приложений, настроенном на среду выполнения .NET 2.0.
У меня не было проблем с развертыванием этого же приложения на серверах IIS 7.5 как на Windows 7, так и на Windows Server 2008 R2.
До развертывания на сервере 2008 года не было установлен .NET 4.0 или ASP.NET MVC 3, поэтому вот шаги, которые я предпринял до развертывания приложения:
- Установленный .NET 4.0
- Ran aspnet_regiis.exe(из папки Framework64/v4.0.30319)
- Установленный ASP.NET MVC 3 с помощью установщика веб-платформы
- Прикладное обновление MS KB980368, чтобы включить определенные обработчики IIS 7.0 или IIS 7.5 для обработки запросов, URL-адреса которых не заканчиваются период
Запросы к статическим ресурсам в приложении (файлы JavaScript, изображения и т.д.) проходят без сбоев, но любой запрос на действие MVC не выполняется с ошибкой 404.0. Я заметил, что IIS использует обработчик StaticFile для обработки этих запросов, что явно неверно. Обработчики ASP.NET 4.0 (т.е. Обработчики ExtensionlessUrl-ISAPI-4.0 *) правильно определены, насколько я могу судить, поэтому я понятия не имею, почему/как запрос не будет обрабатываться одним из этих обработчиков и упадет все путь вниз к обработчику StaticFile.
Я также наткнулся на следующую статью базы знаний MS, в которой упоминается, что вы должны убедиться, что перенаправление HTTP и статическое сжатие содержимого включены/установлены на сервер, на котором вы столкнулись с ошибками 404. Я проверил, и обе функции уже были включены для моего сервера. Я даже попытался удалить и переустановить функции безрезультатно.
В этот момент я совершенно не понимаю, почему это работает неправильно. Я смог реплицировать проблему на двух разных серверах IIS 7.0. Что мне не хватает?