문제

IIS6과 IIS7 모두에 배포할 수 있는 ASP.NET MVC 응용 프로그램이 있는데, 우리 모두 알고 있듯이 IIS6에는 URL에 ".mvc" 이름이 필요합니다.

이 코드가 모든 IIS 버전에서 작동하는지 확인하려면 작동합니까?다른 IIS 버전에 대한 코드, global.asax 또는 구성 파일을 특별히 조정할 필요 없이.

bool usingIntegratedPipeline = HttpRuntime.UsingIntegratedPipeline;

routes.MapRoute(
    "Default",
    usingIntegratedPipeline ?
        "{controller}/{action}/{id}" : "{controller}.mvc/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

업데이트:언급하는 것을 잊었습니다.ISAPI가 없습니다.호스팅된 웹사이트, IIS 서버를 제어할 수 없습니다.

도움이 되었습니까?

해결책

통합 파이프라인은 엄격하게 IIS7이므로 .mvc 문제를 해결해야 합니다.그러나 "2.0 통합 파이프라인"을 사용하도록 IIS7 웹 사이트의 설정을 변경해야 합니다. 그렇지 않으면 false도 반환됩니다.또한 ofcouse는 .mvc를 asp.net isapi dll에 대한 매핑을 설정했지만 이미 알고 있다고 추측합니다.

IIS6에 MVC 응용 프로그램을 배포할 때 기억해야 할 유용한 사항에 대한 몇 가지 제안 사항은 다음과 같습니다.http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression-and-performance-problems.aspx

다른 팁

ISAPI 필터를 사용하면 IIS 6에 있는 동안에도 좋은 URL을 가질 수 있도록 URL을 다시 작성할 수 있습니다.

예를 들어 보세요. 여기

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top