Веб-сайт MVC2, размещенный на IIS7, показывает список каталогов, а не Home/Index

Я пытаюсь разместить веб-сайт MVC2 в IIS. Шаги, которые я выполнил:

  1. Создайте веб-сайт в IIS (укажите физический путь, определенный каталогом, и пул приложений)
  2. Опубликовал код из Visual Studio на физический путь.

Но когда я пытался просмотреть свой сайт, он выдавал мне ошибку

Ошибка HTTP 403.14 — Запрещено. Веб-сервер настроен так, чтобы не отображать содержимое этого каталога.

Итак, я включил функцию просмотра каталогов, теперь она показывает только список каталогов. Что я пробовал?

  1. Добавлена ​​карта сценария с подстановочными знаками для aspnet_isapi.dll.
  2. включил перенаправление HTTP и некоторые другие вещи, которые я нашел в некоторых ответах, связанных с этим вопросом, но у меня ничего не получилось.

Мои настройки маршрутизации

   public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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


    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterRoutes(RouteTable.Routes);
    }
}

person Rajesh Dhiman    schedule 18.01.2014    source источник
comment
Да, он интегрирован, и я пробовал эти решения, но у меня ничего не получилось   -  person Rajesh Dhiman    schedule 18.01.2014


Ответы (2)


Вот что вы можете проверить:

  1. Если ваше приложение использует ASP.NET 4, убедитесь, что оно зарегистрировано в IIS. Следующая команда должна зарегистрировать его с помощью инструмента aspnet_regiis.exe: c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis - ir (адаптируйте пути с соответствующей версией фреймворка, если это необходимо).
  2. Убедитесь, что пул приложений, настроенный для веб-сайта, использует режим интегрированного конвейера.
person Darin Dimitrov    schedule 21.01.2014
comment
Пул приложений интегрирован, и я пробовал вышеуказанный инструмент, но у меня не сработало. - person Rajesh Dhiman; 21.01.2014
comment
Настроен ли пул приложений для работы с .NET 4.0? Также вы убедились, что файлы приложения развернуты в правильном каталоге, на который указывает веб-сайт? - person Darin Dimitrov; 21.01.2014
comment
Да, пул приложений настроен на .NET 4.0. и каталог, на который указывает веб-сайт, похож на C:\inetpub\wwwroot\myWeb, и он содержит мой опубликованный код. - person Rajesh Dhiman; 21.01.2014
comment
Я не знаю, я застрял в этой проблеме в течение нескольких дней и почти перепробовал каждое решение, найденное в Интернете, но все еще не смог заставить его работать. - person Rajesh Dhiman; 21.01.2014
comment
Если вы поместите простую страницу .aspx в корень, она будет обслуживаться? - person Darin Dimitrov; 21.01.2014
comment
Настроено ли ваше приложение MVC2 для обслуживания маршрутов без расширений? Как выглядит ваша конфигурация маршрутизации? - person Darin Dimitrov; 21.01.2014
comment
Обновленный вопрос с моими конфигурациями маршрутизации. - person Rajesh Dhiman; 21.01.2014
comment
Что, если вы попытаетесь получить прямой доступ к некоторому действию контроллера: http://example.com/home/index? - person Darin Dimitrov; 21.01.2014
comment
давайте продолжим это обсуждение в чате - person Rajesh Dhiman; 21.01.2014
comment
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -ir работал у меня. - person endo64; 26.10.2016

Вы нашли решение? Я сталкивался с той же проблемой в течение нескольких часов. Вот моя странная история.

Я настраивал новый win srv 2008 R2 с IIS, установленным через роль (7.5....), и добавлял те же компоненты, что и в IIS моей среды разработки. Я думал, что моя система получила .net fw 4.0, потому что мне удалось создать пулы приложений asp.net 4.0, возможно, потому, что у меня уже была установлена ​​версия 4.5. Я также проверил установленные версии asp.net в IIS через aspnet_regiis.exe -lv, и мой ASP.NET v.4.0... волшебным образом оказался там как в 32-битной, так и в 64-битной версиях.

но...

Я заметил что-то странное, наблюдая за структурой веб-сайта по умолчанию: у меня была только папка aspnet_client\system_web\2_0_50707. Итак, папка 4.0.... отсутствовала.

Мое решение. Я удалил .net 4.5 с сервера, а затем установил v.4.0, загрузив пакет из Microsoft. Затем я зарегистрировал свою версию aspnet 4.0, используя aspnet_regiis -i, присутствующий в его папке (%windir%\Microsoft.NET\Framework64\v4.0.30319).

После переустановки моего веб-приложения mvc3/razor все заработало нормально, даже без установки компонентов mvc3 на сервер.

Мораль, убедитесь, что выбранная вами версия прошивки действительно установлена ​​в системе и настроена в iis (aspnet).

Надеюсь это поможет.

Чао.

person edtruant    schedule 24.01.2014
comment
Спасибо @edtruant, но в моей папке фреймворка отображаются папки всех версий .NET от v1.0.3705 до v4.0.30319. но я попробую переустановить и зарегистрировать .NET framework. - person Rajesh Dhiman; 27.01.2014