2009-03-12 3 views
5

표준 Asp.Net 웹 응용 프로그램의 하위 응용 프로그램으로 MVC 응용 프로그램을 만들려고합니다. 이 두 프로젝트는 동일한 솔루션 안에 있습니다. 상위 응용 프로그램이 정상적으로 진행되는 동안 하위 응용 프로그램을 작동시키는 데 문제가 있습니다. 내 두 web.configs의 일부 마사지 후, 나는 구성을 받아 들일 Asp.Net 런타임을 얻을 수 있었지만, 하위의 루트를 포함하여 MVC 응용 프로그램의 모든 페이지/컨트롤러를 탐색 할 수 없었습니다. -application ("http://RootSite/SubApplicationName/"). 나는 404의 것을 계속 얻는다.MVC 응용 프로그램을 하위 응용 프로그램으로 실행 하시겠습니까?

실제로 "http://RootSite/SubApplicationName/Home/Index/"이라는 URL로 이동할 때 응답을받습니다. 그것은 해당 폴더에 index.aspx 저를 리디렉션,이 오류가 발생합니다 :

The view 'Index' or its master could not be found. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx

IIS에서 하위 응용 프로그램 (7) 매우 정직 설정 : 같은 응용 프로그램 풀에서 실행되도록 설정되어 통합 모드에서 Asp.Net 2.0을 실행하는 상위 응용 프로그램입니다.

내 생각에 나는 web.configs에서 뭔가를 던지고있다. HTTPModules 또는 URL 인증 모듈 등과 관련하여 MVC를 방해하지 않는다는 것을 확인해야합니다.

또한 global.asax.cs 파일에서 기본 경로가 달라야합니까? 기본적으로 routes.MapRoute에 전달 된 URL 매개 변수는 다음과 같습니다

"{controller}/{action}/{id}" 

은은과 같이, 하위 응용 프로그램의 이름 앞에해야 하는가?

"SubApplicationName/{controller}/{action}/{id}" 

그와 같은 변경을 시도했지만 문제가 해결되지 않았습니다.

모든 아이디어를 높이 평가합니다. 또한 하위 응용 프로그램으로 MVC 웹 응용 프로그램을 설정하는 방법에 대한 일반적인 정보는 훌륭합니다.

감사합니다.

답변

1

나는 비슷한 것을했지만 동일한 것은 아니며 별도의 dll에서 뷰를로드해야했습니다. 내 경우에는 클래스 라이브러리 였지만 다른 웹 응용 프로그램은 아니었지만, 내가 아는 한 똑같이 작동해야합니다.

먼저해야 할 일은 하위 애플리케이션보기에서 항목을 찾는 방법을 라우팅 엔진에 알리기 위해 VirtualPath Provider를 만드는 것입니다. 이 작업을 수행하는 방법의 좋은 설명은 여기에서 찾을 수 있습니다 :

http://www.wynia.org/wordpress/2008/12/05/aspnet-mvc-plugins/

내가 그건 당신이 시작하는 확신)

+0

감사합니다. 나는 그것을 읽을 것이고 그것이 나를 위해 일했는지를 알려줄 것이다. – Moskie

+0

처음에는 약간 까다로워 보이지만 그 포스트는 질적이며 Visual Studio 솔루션을 다운로드하여 주변에서 놀 수 있습니다;) – antonioh

+0

나는 그가 내 문제를 해결하는 것에 대해 설명하지 않습니다. 내가 원하는 것은 표준 Asp.Net 웹 응용 프로그램에 MVC 응용 프로그램 인 하위 응용 프로그램이 있다는 것입니다. 그가하고있는 일은 MVC app reference가 다른 MVC dll을 사용하기위한 DLL을 가지고 있다는 것입니다. 그러나 이것은 내가 여기서 다루고있는 관계를 다루지 않는다 ... 나는 생각하지 않는다. – Moskie

0

것은 당신이 어떠한 맞춤법 실수를하지 않았는지 확인 Views 디렉토리의 이름. 나는 같은 오류 메시지를 받고 있었고 30 분 동안 헤드 스크래칭을 한 후 내 뷰 중 하나의 폴더 이름을 잘못 입력했다는 것을 깨달았습니다. IDE는 의미있는 방식으로이를 선택하지 않았습니다. 즉, 참조하는 뷰의 경로가 올바르지 않다고 명시 적으로 말하면 좋을 것입니다 - "찾을 수 없음"은 몇 가지 다른 것을 의미 할 수 있습니다.)

0

하위 응용 프로그램은 MVC 웹 응용 프로그램에 직접적으로 포함되지 않습니다. global.asax에 해킹 된 코드를 많이 작성해야합니다. 하위 응용 프로그램보다는 하위 도메인을 사용하십시오.

관련 문제