Размещение приложения MVC 4 в приложении IIS

У меня есть несколько приложений, развернутых в IIS. Я создал сайт для каждого приложения и сопоставил их с использованием другого номера порта. Недавно меня попросили использовать виртуальный каталог вместо сопоставления их с использованием другого номера порта. Я создал виртуальный каталог и добавил для него маршрут. Когда я пытался протестировать приложение локально, я получал 403.14. Прочитав несколько постов в Интернете, я внес следующие изменения в свой файл web.config

  <modules>
      <remove name="UrlRoutingModule-4.0"/>
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, 
        System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
          preCondition="" />
    </modules>

Я не получаю каталог со всеми именами файлов. Я обновил свой маршрут в

RouteConfig.cs file to 
            routes.MapRoute(
                name: "Default",
                url: "CollegeOfBusiness/{controller}/{action}/{id}",
                defaults: 
                 new { controller = "Account", action = "Logon", id = UrlParameter.Optional},
                 namespaces: new[] { "MyCollege.Controllers" }
            );

После внесения этих изменений я больше не получаю 400,13; однако я не получаю страницу входа. Я получаю каталог всех файлов. Я запустил команду "aspnet_regiis /i", а затем aspnet_regiis -ir, чтобы убедиться, что это не проблема с регистрацией. До сих пор мне не повезло. Я ищу любую информацию или ресурсы, которые могли бы помочь решить эту проблему.

Локальная система: Windows 7 IIS 7.5 Visual Studio 2017 Asp.net MVC 4 Jquery 2.3

Обновление 03/03/2018 @9:45

Я изменил маршрут, как показано ниже. Я больше не получаю список каталогов. Однако POST и GET не маршрутизируются на соответствующий контроллер. URL при первой загрузке страницы выглядел так, как показано здесь:

http://localhost/CollegeOfBusiness

Я добавил свой маршрут ниже. Он добавляется прямо над маршрутом по умолчанию.

RouteConfig.cs file to 
        routes.MapRoute(
            name: "CollegeOfBusiness",
            url: "CollegeOfBusiness/{controller}/{action}/{id}",
            defaults: 
             new { controller = "Account", action = "Logon", id = UrlParameter.Optional},
             namespaces: new[] { "MyCollege.Controllers" }
        );

Затем я добавляю маршрут по умолчанию внизу.

RouteConfig.cs file to 
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: 
     new { controller = "Account", action = "Logon", id = UrlParameter.Optional},
     namespaces: new[] { "MyCollege.Controllers" }
);

Когда пользователь нажимал кнопку входа, URL-адрес публикации выглядел следующим образом:

/CollegeOfBusiness/Account/Logon

1 ответ

Наконец-то я смог заставить его работать. 1. Я удалил приведенный ниже пользовательский маршрут, потому что он не был нужен.

RouteConfig.cs file to 
        routes.MapRoute(
            name: "CollegeOfBusiness",
            url: "{controller}/{action}/{id}",
            defaults: 
             new { controller = "Account", action = "Logon", id = UrlParameter.Optional},
             namespaces: new[] { "MyCollege.Controllers" }
        );
  1. Как предлагается в этом POST, я добавил URL-адрес в div и получил его на основе Id. Я также изменяю src для всех файлов js и css, чтобы использовать @Url.Action().

  2. Я должен был добавить "/CollegeOfBusiness" перед всеми запросами

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

Другие вопросы по тегам