Подтвердить что ты не робот

Разверните asp.net mvc beta для iis 6, вызвав 404

Я пытаюсь обойти ошибки 404 из бета-версии asp.net mvc при развертывании в IIS 6. У меня это работало в одном из предварительных просмотров путем сопоставления .mvc в IIS, но это больше не работает. Я прочитал сообщение Omar и несколько других в Интернете и попробовал их решения, но пока не повезло.

Домашняя страница открывается без проблем на IIS 6, но другие 404 и сайт хорошо работает на IIS 7.

Кто-нибудь успешно использовал asp.net mvc beta для IIS 6? Если да, то какие настройки вам нужно было внести в код и/или настройки IIS, чтобы заставить его работать?

4b9b3361

Ответ 1

Я нашел решение моей проблемы в блоге Стива Сандерсона (спасибо, Стив):

Используйте сопоставление с подстановочными знаками для aspnet_isapi.dll. Это говорит IIS 6 на обработку всех запросов с использованием ASP.NET, поэтому маршрутизация всегда вызывается, и проблем нет. Его очень легко настроить:

  • открыть диспетчер IIS (запустить → inetmgr → ОК)
  • щелкните правой кнопкой мыши свое приложение, перейдите в Свойства
  • затем вкладка Домашний каталог, затем нажмите Конфигурация.
  • В разделе "Карты приложений подстановочного знака" нажмите "Вставить" (не "Добавить", что довольно сложно)
  • затем введите C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll для "Исполняемый файл" и снимите флажок Проверять, существует ли этот файл.

Ответ 2

Я пока не могу писать комментарии. Поэтому я напишу новый ответ.

В stackoverflow есть несколько похожих вопросов. Я использую MVC 3. Я знаю, что вопрос связан с MVC 2. Но так как это первый пост stackoverflow, на который я столкнулся, думаю, стоит упомянуть, что:

  • При использовании MVC 3 вам необходимо добавить новое сопоставление расширения с исполняемым файлом .NET Framework (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll)

<edit> Я только что узнал, что мне даже не нужно настраивать отображение расширений. </редактировать >

  • Мне это все еще не сработало:) Я все еще должен был "Разрешить" ASP.NET v4.0.30319 в разделе "Расширения веб-служб" в IIS:
    • открыть IIS
    • нажмите на сервер node
    • откройте раздел Расширения веб-служб.
    • выберите ASP.NET v4.0....
    • щелкните правой кнопкой мыши → Разрешить Хорошо идти!

Ответ 3

Переработка URL-адресов может помочь вам решить проблему. Я реализовал решение, позволяющее развертывать приложение MVC в любой версии IIS, даже если используется виртуальный хостинг. http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx