사용자 지정 컨트롤(custom control)은 한번만 GAC(Global Assembly Cache)에 등록되어 메모리 상에 존재하면 어떤 ASP.NET 응용 프로그램에서도 사용 가능합니다. 그러나, 사용자 정의 컨트롤(user control .ascx파일)은 사용자 지정 컨트롤과는 달리 ASP.NET 응용 프로그램에 복사본이 있어야 합니다.

참고: GAC에 등록된 Assembly를 보려면 gacutil /ldl 명령을 사용합니다.

본 문서에서는 GAC에 등록하지 않고 사용자 정의 컨트롤을 ASP.NET 응용 프로그램간에 공유하여 사용할 수 있는 방법을 설명합니다. 이 방법을 이용하면 더 이상 .ascx 파일을 프로젝트에 추가하지 않아도 됩니다. 즉, 더 이상 ascx 파일의 복사본이 해당 응용 프로그램에 없어도 됩니다.

추가 정보

다음 절차는 사용자 정의 컨트롤을 ASP.NET 응용 프로그램간에 공유하여 사용할 수 있는 방법을 설명합니다.

  1. Visual Studio .NET을 구동하거나 인터넷 정보 서비스(inetmgr)를 이용하여 2개의 IIS 웹 응용 프로그램(SharingUC1, SharingUC2)을 만듭니다.
  2. SharingUC1을 선택하고 마우스 오른쪽 단추를 클릭하여 새로 만들기, 가상 디렉터리 메뉴를 선택하여 가상 디렉터리를 만듭니다.
  3. 별칭으로 Controls를 입력합니다.
  4. 디렉터리에 C:\SharedUC를 입력합니다.
  5. 인터넷 정보 서비스에서 새롭게 만들어진 가상 디렉터리 Controls를 선택하여 마우스 오른쪽 단추를 클릭하여 속성을 선택합니다.
  6. 응용 프로그램(M) 설정의 제거 버튼을 누릅니다. 이 작업은 가상 디렉터리 매핑은 유지하면서 해당 폴더를 응용 프로그램으로 만들지는 않습니다.
  7. SharingUC2도 단계 2에서 6번까지 반복합니다.



    지금까지 작업으로 기본 응용 프로그램 설정은 끝났습니다.
  8. 실제 테스트를 위하여 c:\SharedControls 폴더에 사용자 정의 컨트롤 파일(.ascx 파일)을 추가합니다.
  9. 두 개의 응용 프로그램(SharingUC1, SharingUC2)에 웹 폼을 추가하고 방금 추가한 사용자 정의 컨트롤 파일을 다음과 같이 호출합니다.
    <%@ Register TagPrefix="uc1" TagName="WebUserControl1" 
    Src="Controls\WebUserControl1.ascx" %>
    
    <uc1:WebUserControl1 id="WebUserControl1" runat="server"/>
  10. 다음과 같이 확인해 보면, 똑같은 사용자 정의 컨트롤을 각 웹 응용 프로그램에 복사본 없이 응용 프로그램간에 공유하여 사용하는 것을 볼 수 있습니다.

    http://localhost/SharingUC1/Webform1.aspx

    http://localhost/SharingUC2/Webform1.aspx

+ Recent posts