2011-09-20 4 views
0

IIS 7.5 (통합 모드)를 사용하는 Windows Server 2008 R2에 MVC 응용 프로그램을 배포했습니다. 주소 (http://192.168.3.5:2011/)를 입력하면 브라우저가 표시해야하는 첫 번째 페이지가 로그인 페이지입니다. 문제는 그 대신에 알파벳 순으로 정렬 된 목록의 맨 위에있는 컨트롤러에서 발견 된 첫 번째 ActionResult 반환 메서드를 실행한다는 것을 발견했습니다. 반면에 내가 http://192.168.3.5:2011/Default.aspx을 입력하면 모든 것이 정확해진다. 로그인 페이지가 표시됩니다.MVC 응용 프로그램의 홈 페이지가 IIS 7.5에서 올바르게 라우팅되지 않았습니다.

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> 

가있는 Global.asax에 나의 라우팅 테이블은 다음과 같이 정의된다 LogOn 메서드는 계정 컨트롤러에서 첫 번째로 선언 된 것으로, 알파벳순으로 정렬 된 첫 번째 컨트롤러입니다.

IIS 6.0에서는 클래식 모드가 제대로 작동하지만 IIS 7.5 (통합 모드)에서는 작동하지 않습니다. 이것은 나를 미치게 만든다.

도움 주셔서 감사합니다.

감사합니다.

+1

실행중인 작업에 대한 세부 정보 (최소한 이름과 컨트롤러)를 입력하십시오. – Rune

답변

1

그것은 인증이 다른에 하나의 경우에 구성되지 않은 나에게 나타납니다. 계정/로그온에는 원래 요청이 인증되지 않은 경우 리디렉션으로 인해 일반적으로 제공되는 반환 URL 매개 변수가 있습니다.

+0

그 다음 변경해야하는 것은 무엇입니까? 죄송합니다. 답을 이해하지 못했습니다 .--(그런데 앱의 다른 위치에 링크가 있으며 같은 오류가 발생합니다. – Julen

+0

감사합니다. Jared and Max for 당신의 도움. 결국 그것은 인증 문제가되었습니다. 내가 IIS에서 양식 및 Windows로 변경 ... 그게 효과가 있었어! 난 아직도 무슨 일이 있었는지 잘 이해가 안돼. – Julen

0

당신은 UrlParameter.Optional로 ID를 정의하는 시도 할 수 있습니다 :

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

UrlParameter 클래스에 액세스 할 수없는 것 같습니다. 나는 프레임 워크의 V2와 함께 일하고있다. – Julen

+0

UrlParameter는 mvc2에서 소개되었으며 System.Web.Mvc 네임 스페이스에 속해 있습니다 –

+0

아마도 MVC2에 속하지만 NET Framework V2에 해당합니까? Visual Studio에서 찾을 수 없습니다. :-( – Julen

관련 문제