2009-04-01 5 views
16

Cashini를 사용하여 mvc 응용 프로그램을 개발하고 테스트했습니다. GoDaddy에서 내 사이트에 배포되고 기본 페이지가 정상적으로 나타납니다. 로그인하여 로그인하면 404가 표시됩니다.IIS 7 및 ASP.NET MVC에서 404 오류 진단

IIS 7에서 실행 중이므로 예기치 않게 발생합니다. 내 경로는 매우 단순합니다.

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "Default",            
      "{controller}/{action}/{id}",       
      new { controller = "Public", action = "Index", id = "" } 
     ); 
     routes.MapRoute(
      "Report1", 
      "Report/{action}/{start}/{end}", 
      new { controller = "Report", action = "Index" } 
     ); 
     routes.MapRoute(
      "Report2", 
      "Report/{action}/{start}/{end}/{idList}", 
      new { controller = "Report", action = "Index" } 
     ); 

어떤 일이 벌어 지거나 어떻게 해결할 수 있을지 궁금하십니까?

답변

27

IIS7에서 실행 중입니까 통합 모드?

IIS7의 기본 모드는 이 아니며은 자동으로 확장명없는 URL을 ASP.NET에 매핑합니다 (IIS6과 유사).

Web.config<system.webServer> 태그가 올바르게 구성되어 있는지 확인하십시오.

+0

감사합니다. Mehrdad. GoDaddy는 IIS 7을 기본 모드로 기본 설정합니다. – Stuart

+3

<모듈 runAllManagedModulesForAllRequests = "true"/>

12

모든 것을 시도해 보니 웹 구성을 설정해야만 작동합니다.

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
+0

감사합니다! – SirMoreno

+2

실제로 와우! 그런데 왜 내가 그곳으로 돌아올 것 같은 느낌이 들지? – Lopsided

+0

@Lopsided 대신이 작업을 수행하십시오. http://stackoverflow.com/a/23618629/385565 – DavidAndroidDev

22

Don't use runAllManagedModulesForAllRequests. IIS가 이미지와 같은 리소스를 처리하도록하고 싶습니다.

<system.webServer> <!-- Rather do NOT use this --> 
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer> 

대신 저도 같은 문제를했다 MVC 라우팅 모듈

<system.webServer> 
    <modules> 
    <remove name="UrlRoutingModule-4.0" /> 
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> 
    </modules> 
</system.webServer> 
+0

이 답변도 효과적이었으며 효과적이고 (우아한) 접근 방식을 가지고있는 것 같습니다. – Lopsided

+2

이 메서드는 ASP.NET 웹 API 응용 프로그램에서 잘 작동합니다. 앱은 로컬에서 벌금이 부과되었지만 다른 환경에 배포되면 모든 웹 API 요청에 대해 404가 수신되었습니다. 위에서 언급 한 라우팅 모듈 비트를 추가했는데 모든 것이 정상입니다. 비슷한 문제 : http://stackoverflow.com/questions/15389855/asp-net-web-api-application-gives-404-when-deployed-at-iis-7. 감사! –

+0

나는 HTTP DELETE 요청을 받아들이는 MVC 앱을 얻으려고 애 쓰고 있었다. 이것은 나를 위해 그것을 돌 보았다. 감사! – Furynation

1

를 추가, 나는 컨트롤러의 web.config와 다른 클래스를 업로드하지만 bin 폴더를 업로드하는 것을 잊었다.

bin 폴더를 업로드 한 후 작동했습니다.

관련 문제