문제

Global.asax.cs에 다음과 같습니다

routes.MapRoute(
    "Arrival",
    "{partnerID}",
    new { controller = "Search", action = "Index", partnerID="1000" }
);

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

내 SearchController는 다음과 같습니다

public class SearchController : Controller
{
    // Display search results
    public ActionResult Index(int partnerID)
    {
        ViewData["partnerID"] = partnerID;
        return View();
    }
}

그리고 index.aspx는 현재 단순히 ViewData [ "PartnerId"]를 보여줍니다.

Windows XP에서 Test라는 IIS에 가상 디렉토리가 설정되어 있습니다.

내 브라우저를 가리키면 http : // localhost/test/ 그런 다음 예상대로 1000을 표시합니다. 그러나 내가 시도하면 http : // localhost/test/1000 페이지가 발견되지 않은 오류가 발생합니다. 어떤 아이디어?

가상 디렉토리에서 MVC 실행에 대한 특별한 고려 사항이 있습니까?

도움이 되었습니까?

해결책

IIS 5.1은 URL을 해석하여 테스트라는 폴더에서 1000이라는 폴더를 찾고 있습니다. 왜 이렇게이다?

IIS 6은 ASPNET_ISAPI.DLL (ASP.NET을 호출하는 C/C ++ ISAPI 필터)에 맵핑 된 URL에서 "Filename Extension"을 볼 때 ASP.NET을 호출하기 때문에 발생합니다. 라우팅은 urlroutingModule이라는 .NET IHTTPMODULE이므로 ASP.NET 자체가 호출되지 않으면 호출되지 않습니다. ASPNET_ISAPI.DLL이 호출 될 때만 발생합니다. URL에 .aspx가있을 때만 발생합니다. 따라서, .aspx, urlroutingModule이 없으므로 404.

가장 쉬운 솔루션은 다음과 같습니다.

URL에 .aspx가 마음에 들지 않으면 라우팅 구성을 살펴보고 각 패턴의 전진 슬래시 전에 .aspx를 추가하십시오. 예를 들어 {controller} .aspx/{action}/{id} 또는 myapp.aspx/{controller}/{action}/{id}를 사용하십시오. 컨트롤러 이름의 일부가 아니기 때문에 .aspx를 Curly -Bracket 매개 변수 이름이나 '기본'값에 넣지 마십시오. IIS를 만족시키는 URL에 있습니다.

원천: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-spnet-mvc-to-6/

다른 팁

Windows XP 에서이 작업을 수행하는 경우 IIS 5.1을 사용하고 있습니다. 요청을 처리하려면 ASP.NET을 가져와야합니다. 경로 ({컨트롤러} .mvc/{action}/{id})에 확장자를 추가하고 ASP.NET으로 확장하거나 모든 요청을 ASP.NET에 매핑해야합니다. 그만큼 http : // localhost/test MVC 프로젝트에서 특별히 처리되는 Default.aspx로 이동하기 때문에 작동합니다.

또한 지정해야합니다 http : // localhost/test/search/index/1000. ID를 지정하려면 컨트롤러 및 액션 조각이 선택 사항이 아닙니다.

응용 프로그램에서 가상 디렉토리를 사용할 때 여러 가지 고려 사항이 있습니다.

하나는 앱이 동일한 서버에 상주하더라도 대부분의 브라우저는 한 가상 디렉토리에서 다른 디렉토리로 쿠키를 제출하지 않는다는 것입니다.

가상 경로 설정 : MVC 프로젝트, 속성, 웹 탭을 마우스 오른쪽 버튼으로 클릭하십시오. 적절한 위치가 입력됩니다.

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