2008-11-11 5 views
2

현재 asp.net-mvc 콘텐츠 관리 시스템에서 작업하고 있습니다. 예를 들어 중첩 된 응용 프로그램을 배포 할 수 있다는 것이 매우 유용 할 것입니다./가게 안에 별도의 앱이 있습니다. 또는 cms의 다른 인스턴스.ASP.NET MVC로 중첩 된 응용 프로그램

web.config의 상속을 제한하는 방법에 대한 정보가 있지만 MVC 응용 프로그램과 매핑되는 방법에 대해서는 잘 모릅니다. 기본적으로 동일한 스택이 실행되기를 기대하고 있습니다. 아무것도 쉬운 일은 아닙니다.

누구든지이 일을 해본 경험이 있다면 정말 감사 할 것입니다. 그들 모두를 지배하기위한 하나의 큰 응용 프로그램의 아이디어는 전혀 좋지 않습니다.

Si.

답변

2

가장 큰 장애물은 경로를 생성하고 시스템에 이미있는 경로를 방해하지 않도록하는 것입니다. 그 일을 얻은 후에 나머지는 파이처럼 쉽습니다.

가장 먼저 필요한 것은 HttpModule이며,이 모듈은 .html 아래의 web.config에 삽입됩니다. 이 모듈은 등록하고자하는 ViewEngine 또는 Routes를 등록하는 데 사용됩니다. Global.asax에서와 같은 방식으로이 작업을 수행하지만 Application_Start에 배치하는 대신 HttpModule의 정적 생성자에 넣습니다. 이것은 Application_Start와 같이 한 번만로드되기 때문입니다.

위의 작업을 수행하면 쉽게 전송할 수있는 모듈을 만들 수 있으며, 인 퓰리 멘터가 자신의 물건을 얻기 위해 Global.asax 코드를 수정할 필요가 없습니다.

두 번째로해야 할 일은 web.config에 사용자 지정 구성을 만들어 응용 프로그램의 루트 경로와 같은 항목을 설정하는 것입니다. 이것은 HttpModule에서 설정 될 때 경로 앞에 추가됩니다. 또한이를 사용하여 데이터베이스에 적합하지 않은 사용자 정의 정보를 저장할 수 있습니다.

마지막으로 폴더 구조를 알고 있고 이해하는 사용자 지정 ViewEngine을 만들 수도 있지만 반드시 필요한 것은 아닙니다. 이는 충돌을 최소화하기 위해 기본보기와 다른 경로에보기를 저장하려는 경우에만 필요합니다.

0

나는 (블로그와 함께)이 길을 떠나기는했지만 가능하지만 복잡하고 유지하기 어렵다는 것을 알았다. 대신 내가 사용하는 하위 도메인을 결국 :

  • www.example.com
  • shop.example.com
  • blog.example.com

이 유지 훨씬 쉽게 그냥 할 수 있기 때문에 IIS에서 별도의 웹 사이트로 작동하도록하십시오. 물론 www.example.com/shop을 shop.example.com으로 리디렉션 할 수도 있습니다.

+0

이 검색 엔진 최적화에 대한 아주 나쁜 바랍니다. –

+0

그가 정말로 하나의 ASP.NET MVC 응용 프로그램을 다른 ASP.NET MVC 응용 프로그램 내부에 중첩시켜야한다면 정말 깊은 경로와 AFAIK로 이어질 수 있습니다. 검색 엔진은 그 중 하나를 좋아하지 않습니다. :) – hangy

+1

사실 그건 사실이 아니야. Google은 알고리즘을 변경하여 모든 하위 도메인을 동일한 웹 사이트로 취급합니다. – Keltex

관련 문제