Размещение приложения MVC 4 в приложении IIS - PullRequest
0 голосов
/ 02 июля 2018

У меня есть несколько приложений, развернутых в 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

Обновление 07/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 Ответ

0 голосов
/ 03 июля 2018

Наконец-то я смог заставить его работать. 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 и получил его на основе идентификатора. Я также изменяю src для всех файлов js и css, чтобы использовать @ Url.Action ().

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

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

...