2009-08-28 2 views
1

저는 여전히 ASP.NET MVC에 익숙하지 않아 약간의 어려움을 겪고 있습니다.ASP.NET MVC에서 내 웹 사이트를 게시 한 후 404 오류가 발생하는 이유는 무엇입니까?

Visual Studio에서 직접 실행되는 ASP.NET 개발 서버를 사용하면 내 응용 프로그램이 문제없이보기를 찾을 수 있습니다. 표준 ASP.NET의 URL을 사용 - http://localhost:1871/InterestingLink/Register

을 그러나, 나는 http://localhost/MyFancyApplication/InterestingLink/회원 가입을 통해 IIS 액세스를 내 사이트를 게시 할 때, 나는 404 오류가 발생합니다.

무엇이 잘못 되었을지에 대한 제안 사항이 있습니까?

정보를 더 많이 ...

이 내 Global.asax 파일이 (표준) 모습입니다 :

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 = "" } // Parameter defaults 
      ); 

     } 

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

내 컨트롤러도 매우 간단하다 :의

public class InterestingLinkController : Controller 
{ 
    public ActionResult Register() 
    { 
     return View("Register"); 
    } 
} 

답변

2

내가 잘못 무엇인지 알아 냈어. 문제는 URL에 .ASPX가 포함되어 있지 않으면 IIS5 (Windows XP에서)가 ASP.NET을 실행하지 않는다는 것입니다. 이를 극복하는 가장 쉬운 방법은 global.asax의 컨트롤러 섹션에 '.aspx'를 추가하는 것입니다. 예를 들면 다음과 같습니다.

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

예쁘지 않지만 그렇게됩니다.

1

많은 문제가 될 수 있습니다.

  • IIS 가상 디렉터리 & 응용 프로그램이 올바르게 설정 되었습니까?
  • ASP.NET 응용 프로그램이 전혀 호출되지 않았습니까? 그냥 시작을

을 (Application_StartApplication_BeginRequest 일부 로깅/breakpoiont 추가). 당신은 일반적인 디버깅 접근법을 적용해야 할 것입니다.

(이 같은 문제를 방지하려면, 나는 거의 개발 서버를 사용하지 않고 단지 전체 시간을 IIS 사용합니다. 가장 어려운 것은 VS 때마다 상승 실행하는 기억한다)

관련 문제