Домашняя страница в приложении MVC неправильно маршрутизируется с IIS 7.5 - PullRequest
0 голосов
/ 20 сентября 2011

Я развернул приложение MVC в Windows Server 2008 R2 с IIS 7.5 (интегрированный режим).Первая страница, которую браузер должен показать, если я введу адрес (http://192.168.3.5:2011/), это страница входа в систему. Дело в том, что вместо этого я обнаружил, что он выполняет первый метод возврата ActionResult, найденный в контроллере, который находится в верхней части алфавитного алфавитаупорядоченный список ???. С другой стороны, если я наберу http://192.168.3.5:2011/Default.aspx все идет правильно, он показывает страницу входа. Моя таблица маршрутизации в Global.asax определяется как:

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

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

       protected void Application_Start()
       {
           RegisterRoutes(RouteTable.Routes);
       }
   }

Результат, который я получаю, заключается в том, что он перенаправляет на следующий адрес: http://192.168.3.5:2011/Account/LogOn?ReturnUrl=%2f, а затем выдается ошибка конфигурации:

<providers>
         <clear />
         <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/" />
</providers>

Существует метод LogOn, который является первым, объявленным вAccount Controller, который является первым заказанным контроллером в алфавитном порядке.

В IIS 6.0 классический режим работает нормально, но не в IIS 7.5 (интегрированный режим). Это сводит меня с ума.

Спасибо за вашпомощь.

С уважением.

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Мне кажется, что аутентификация настроена в одном случае, а не в другом.Учетная запись / вход в систему имеет параметр URL-адреса возврата, который обычно предоставляется из-за перенаправления, когда исходный запрос не аутентифицирован.

0 голосов
/ 20 сентября 2011

Вы можете попытаться определить id как UrlParameter.Optional:

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