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

Внедрение MVC 3 в IIS6

Изначально я развернул сайт с некоторыми из набора DLL, чтобы скопировать локальный (как показано на другой должности SO). После этого я установил пакет MVC 3 на сервер.

Когда я попал на свой сайт, я получаю:

Список каталогов Отказано в этом виртуальном Директория не допускает в списке.

Я увидел взломанный блог, но его почти 3 года сейчас и некоторые из них просто не работают. Кто-нибудь знает, что нам нужно сделать, чтобы заставить это работать после того, как мы установили MVC 3 на сервер?

ОБНОВЛЕНИЕ
Я обнаружил еще одну ссылку в разбитом блоге. По-видимому, это должно просто работать (нет необходимости делать подстановочные сопоставления). Мой виртуальный каталог веб-сайта настроен на запуск ASP.NET 4.0.30319, я установил ASP.NET MVC 3, и я запускаю IIS6 (Windows Server 2003 R2, вполне уверен, что это IIS6).

4b9b3361

Ответ 1

Виртуальный каталог был настроен на ASP.NET 4.0. В то время как "Веб-сайт по умолчанию" был настроен на запуск ASP.NET 2.0. Я изменил "Веб-сайт по умолчанию", чтобы запустить 4.0 в дополнение к virt. и он начал работать. Причина для меня загадка, но она сработала.

Ответ 2

Похоже, вы не настроили сопоставление подстановочных знаков. Вам необходимо настроить сопоставление в IIS, который отправляет все запросы в конвейер ASP.NET для обработки. Поскольку у вас нет настроенного сопоставления, он интерпретирует запрос как просмотр каталога (который, вероятно, не разрешен в вашей конфигурации).

От Haacked:

  • В свойствах IIS для веб-сайта перейдите на вкладку "Домашний каталог".
  • Нажмите кнопку "Конфигурация...". На вкладке "Сопоставления" нажмите "Вставить..."
  • Рядом с меткой "Прикладные карты приложений" В текстовом поле введите "c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll"
  • Снимите флажок "Проверить, существует ли файл". Нажмите "ОК"

Ответ 3

Я считаю, что ASP.NET 4 Extensionless URL-функция не работает для виртуального каталога на iis v6, если веб-сайт по умолчанию не настроен на запуск ASP.NET версии 4.0. Для меня установка ASP.NET v4.0 на веб-сайт по умолчанию не является вариантом, так как он нарушает существующий виртуальный каталог vapp 2.0 vapp. Добавление карт подстановочных приложений в виртуальный каталог mvc3 webapp работал у меня. Вот список шагов, которые я сделал для развертывания mvc на iis6.

  • ASP.NET v4 уже установлен на сервере Windows 2003
  • Установить AspNetMVC3Setup.exe
  • Скопируйте файлы webapp mvc3 на сервер без библиотек mvc3 в папке bin
  • Создать виртуальный каталог, указывающий на папку приложения
  • Установите версию ASP.NET 4.0.30319
  • Добавьте карту приложения подстановочного знака в c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll и снимите флажок Проверить, существует ли файл

Ответ 4

О МАСШТАБЕ WILCARD APPLICATION MAP. Имейте в виду, что этот параметр заставляет IIS перехватывать каждый запрос, сделанный против веб-сервера. Сюда входят запросы на изображения, классические страницы ASP и HTML-страницы. Поэтому включение шаблона script для ASP.NET имеет последствия для производительности.

ДРУГОЕ РЕШЕНИЕ: В W2K3 SP2 с IIS6,.NET Framework (2, 3.5, 4).

Перейти к реестру:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0

Если необходимо создать DWORD EnableExtensionlessUrls со значением 0.

Затем из окна команды выполните: resetiis

Создайте приложение ASP.NET из шаблона MVC3.

Теперь в настройке global.asax маршруты, подобные тезисам:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    //routes.MapRoute(
    //    "Default", // Route name
    //    "{controller}.mvc/{action}/{id}", // URL with parameters
    //    new { controller = "Home", action = "Index", id = "" } // Parameter defaults
    //);

    routes.MapRoute(
            "Default",
            "{controller}.aspx/{action}/{id}",
            new { action = "Index", id = "" }
          );

    routes.MapRoute(
      "Root",
      "",
      new { controller = "Home", action = "About", id = "" }
    );
}

Создайте AppPool для .NET Framework 4 и настройте веб-приложение для использования этого приложения. Вы можете использовать Denis Bauer ASP.NET Version Switcher или использовать Aspnet_regiis.exe.

РЕЗУЛЬТАТ: браузер показывает страницу "О странице" как страницу по умолчанию.