2010-03-08 2 views
3

나는 웹 사이트를 구축 했으므로 이제 고객은 세 가지 도메인 사이에서 웹 사이트를 분할하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 이것은 내가 지금까지 가지고있는 것입니다.여러 도메인 이름에서 코드 공유 (ASP.NET)를 설정하려면 어떻게해야합니까?

  • C/WEBSITE1/포인트 www.website1.com
  • 내지 c/WEBSITE1/VD1/포인트 www.website2.com
  • 내지 c/WEBSITE1/VD2/포인트 www.website3 할 .com

내가 사용하고있는 웹 호스트는 다음과 같은 방식으로 작성했지만 지금은 App_code 폴더가 보이지 않는 것처럼 보이는 오류가 발생합니다. 나는 많은 변화를 만들어야합니까? 이것이 위치 참조에 어떤 영향을 줍니까?

+0

아마 응용 프로그램 디렉토리로 vd1과 vd2를 설정해야합니다. – jrummell

답변

0

도메인이 여러 개 있다고해서 별도의 응용 프로그램이 필요하지는 않습니다. 이 가상 디렉터리의 요점은 무엇입니까? IIS는 행복하게 여러 도메인을 동일한 앱에 제공합니다.

+0

간단한 것이 가장 좋습니다. 그게 내가 끝내 준거야. 서로 다른 마스터 페이지가있는 각 도메인에 대해 별도의 방문 페이지를 만들었습니다. 어떤 복제는 있지만 나쁘지는 않습니다. – scojomodena

3

문제는 사용자가 수행 한 것처럼 사이트를 구성하면 www.website2.com과 www.website3.com이 별도의 응용 프로그램이므로/vd1/외부에있는 콘텐츠 나 코드를 볼 수 없다는 것입니다. 또는/vd2/(각 이미지, CSS, 사용자 정의 컨트롤, 마스터 페이지 등과 함께 c : \ website1 \의/app_code/폴더가 될 수 있습니다.

/app_code/폴더에 일부 논리가 공유되어 있으면 Visual Studio에서 새 프로젝트에 복사 할 수 있습니까? 이상적으로는 새 클래스 라이브러리 프로젝트를 만들고 거기에 .cs 파일 만 갖고 싶을 것입니다. 그것을 .dll 파일로 컴파일하고 웹 사이트 프로젝트에서 해당 라이브러리에 참조 추가.

그러나이 기능은 사용자 컨트롤이나 로그인, 등록 등의 다른 일반적인 페이지에서는 사용할 수 없습니다.

그런 다음 각 가상 디렉터리에/bin/폴더를 만들고 라이브러리를 복사하십시오. 웹 호스트에게 www.website1.com의 응용 프로그램으로 구성하도록 요청해야 할 수도 있습니다.

편집이 같은 사이트의 부분을 분할하는 이유 그런

그래, 당신은 아마 당신보다 앞서 일을 꽤있다, 그러나 이유 을 모른 채 코멘트에 응답하기 다른 도메인으로 옮길 수있는 방법에 대한 해결책을 제공 할 수는 없습니다. Bryan은 아래에서 지적했듯이 여러 도메인 (호스트 헤더라고도 함)을 IIS의 단일 사이트에 매핑 할 수 있으므로 세 가지 모두를 가질 수 있습니다 동일한 루트를 가리키고 있습니다.

다른 모양과 느낌을 찾고 있다면 System.Web.UI.Page에서 상속받은 핵심 "기본 페이지"유형 클래스를보고 페이지를 상속 받아야합니다 대신 URL의 ServerName을 기반으로 템플릿을 바꿀 수 있습니다. 예를 들어 MasterPages를 사용하는 경우 OnPreInit 메서드에서이 작업을 수행해야합니다.

또한 추가 논리를 추가하여 사용자가 사이트의 올바른 섹션으로 전송되도록 할 수 있습니다 (요구 사항 인 경우).

+0

app_code 폴더 이상을 공유해야합니다. 각 가상 사이트에 페이지를 복사해야하는 많은 관리 페이지 (사실 CMS 전체)가 있습니다.나는 아마 그들이 사용자가 올바른 "홈"페이지로 그들이 도메인에서 온을 기반으로 리디렉션해야한다고 생각하고있어. 이 작업을 수행하는 더 나은/표준 방법이있는 것처럼 보입니다. 결국 – scojomodena

관련 문제