Разверните бета-версию asp.net mvc в iis 6, вызывая ошибку 404
-
04-07-2019 - |
Вопрос
Я изо всех сил пытаюсь обойти ошибки 404 из бета-версии asp.net mvc при развертывании в IIS 6.У меня это работало в одной из предварительных версий при сопоставлении .mvc в IIS, но это больше не работает.я прочел Сообщение Омара и несколько других пользователей в Интернете и попробовали их решения, но пока безуспешно.
Домашняя страница открывается без проблем в IIS 6, но другие 404, а сайт хорошо работает в IIS 7.
Кто-нибудь успешно развернул бета-версию asp.net mvc в IIS 6?Если да, то какие изменения вам нужно было внести в код и/или настройки IIS, чтобы он заработал?
Решение
Я нашел решение своей проблемы от Блог Стива Сандерсона (Спасибо, Стив):
Используйте сопоставление с подстановочными знаками для aspnet_isapi.dll
.Это указывает IIS 6 обрабатывать все запросы с использованием ASP.NET, поэтому маршрутизация всегда активируется и проблем не возникает.Настроить очень просто:
- откройте диспетчер IIS (выполнить -> inetmgr -> ОК)
- щелкните правой кнопкой мыши свое приложение, перейдите в «Свойства»
- затем вкладка «Домашний каталог», затем нажмите «Конфигурация».
- В разделе Карты приложений с подстановочными знаками нажмите кнопку Вставить (а не Добавить, что сбивает с толку чуть выше)
- Затем введите C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll для "Исполняемый" и снимите флажок Проверить существование этого файла.
Другие советы
Кажется, я пока не умею писать комментарии.Поэтому я напишу новый ответ.
В stackoverflow есть несколько подобных вопросов.Я использую MVC 3.Я знаю, что вопрос был связан с MVC 2.Но поскольку это первый пост о stackoverflow, с которым я столкнулся, думаю, стоит упомянуть следующее:
- когда вы используете MVC 3, вам необходимо добавить новое сопоставление расширений с исполняемым файлом платформы .NET 4 (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll).
<edit>Я только что узнал, что мне даже не нужно настраивать сопоставление расширений.</edit>
- Тогда у меня это все еще не сработало :) Мне все равно пришлось «Разрешить» ASP.NET v4.0.30319 в разделе «Расширения веб-служб» в IIS:
- открыть IIS
- нажмите на узел сервера
- откройте раздел «Расширения веб-сервисов»
- выберите ASP.NET v4.0....
- Щелкните правой кнопкой мыши --> Разрешить Все готово!
Переписывание URL может помочь вам решить проблему. Я реализовал решение, позволяющее развернуть приложение MVC на любой версии IIS даже при использовании виртуального хостинга. http://www.codeproject.com/KB/aspnet/ МИС-САШ-URL-rewriting.aspx