Visual Basic을 사용하여 DCOM 클라이언트/서버 애플리케이션 만들기

이 문서에서는 Visual Basic을 사용하여 DCOM(Distributed Component Object Model) 클라이언트/서버 애플리케이션을 만들고, 패키지하고, 배포하는 방법을 설명합니다.

원래 제품 버전: Visual Basic
원본 KB 번호: 266717

요약

이 문서에서는 Visual Basic을 사용하여 DCOM 클라이언트/서버 애플리케이션을 만들고, 패키지하고, 배포하는 방법을 보여줍니다. DCOM 클라이언트/서버 애플리케이션을 만들려면 Visual Basic의 Enterprise Edition 필요합니다. Microsoft는 판독기가 동일한 컴퓨터에서 실행되는 클라이언트/서버 애플리케이션을 만드는 데 이미 익숙하다고 가정합니다.

추가 정보

클라이언트 애플리케이션이 DCOM을 사용하여 원격 서버를 인스턴스화할 수 있도록 코드를 변경할 필요가 없습니다. 차이점은 클라이언트를 패키지하고 배포하는 방법입니다. 또한 클라이언트와 서버가 설치된 후에 수행해야 하는 몇 가지 보안 설정이 있습니다. Dcomcnfg라는 유틸리티를 사용하여 이러한 설정을 만들 수 있습니다.

다음 단계에서는 클라이언트/서버 애플리케이션을 배포하고 구성하는 방법을 보여줍니다. 서버 이름을 DCOMDemo_Svr 클라이언트 이름을 DCOMDemo_Cli. 각 폴더에 대해 별도의 폴더를 만듭니다. 이 문서의 목적을 위해 이러한 폴더를 호출합니다.c:\DCOMDemo\Server and c:\DCOMDemo\Client

서버 만들기

  1. Visual Basic 프로젝트를 시작합니다. 새 프로젝트 대화 상자에서 ActiveX EXE를 선택한 다음 열기를 클릭합니다. Class1은 기본적으로 만들어집니다.

  2. Class1 모듈에 다음 코드를 추가합니다.

    Public Function ServerTime() As String
        ServerTime = Time
    End Function
    
  3. 프로젝트 메뉴에서 프로젝트 속성 옵션을 클릭한 다음 일반 탭을 선택합니다.

  4. 프로젝트 이름 필드에 DCOMDemo_Svr 입력합니다.

  5. 프로젝트 설명 필드에 DCOMDemo_Svr - 서버를 입력합니다. 무인 실행 옵션을 확인합니다.

    참고

    이 옵션은 서버가 실행되는 동안 형식의 대화 상자가 표시되지 않도록 UI가 없는 서버에서 항상 체크 인해야 합니다. 서버가 대화형 사용자가 아닌 ID로 실행되는 동안 사용자 상호 작용 유형이 있는 경우 서버가 중단된 것처럼 보일 수 있습니다.

  6. 구성 요소 탭을 선택하고 원격 서버 파일 옵션을 검사.

    참고

    이 옵션을 선택하면 Visual Basic 컴파일러가 이 서버를 사용하는 클라이언트 애플리케이션을 패키징하는 데 필요한 VBR 및 TLB 파일을 생성합니다. 이러한 파일에는 클라이언트 컴퓨터에 포함해야 하는 레지스트리 항목이 포함되어 있습니다.

  7. 프로젝트 속성 대화 상자를 닫습니다.

  8. 파일 메뉴에서 다른 이름으로 저장을 선택한 다음, 이 프로젝트를 에 저장합니다c:\DCOMDemo\Server folder.

  9. 파일 메뉴에서 DCOMDemo_Svr 만들기를 선택하고 서버를 컴파일합니다.

  10. 프로젝트 메뉴에서 프로젝트 속성 옵션을 선택한 다음 구성 요소 탭을 선택합니다.

  11. 구성 요소 탭에서 버전 호환성을 선택하고 이진 호환성 옵션을 선택한 다음, 프로젝트를 만든 서버의 실행 파일(DCOMDemo_Svr.exe)과 호환되도록 합니다. 이 옵션을 선택하면 서버를 다시 컴파일하는 경우 모든 GUID가 동일하게 유지됩니다.

클라이언트 만들기

  1. 파일 메뉴에서 새 프로젝트 옵션을 선택하고 표준 EXE를 선택한 다음 확인을 클릭합니다. Form1은 기본적으로 만들어집니다.

  2. 프로젝트 메뉴에서 프로젝트 속성 옵션을 클릭한 다음 일반 탭을 선택합니다.

  3. 프로젝트 이름 필드에 DCOMDemo_Cli 입력합니다.

  4. 프로젝트 설명 필드에 DCOMDemo_Cli Project - Client를 입력합니다.

  5. 프로젝트 메뉴에서 참조를 선택합니다. 사용 가능한 참조 목록에서 DCOMDemo_Svr - 서버를 선택합니다.

  6. Form1에 명령 단추를 놓고 단추의 캡션 실행으로 변경합니다.

  7. 단추의 클릭 이벤트에 다음 코드를 배치합니다.

    Dim MyObj As DCOMDemo_Svr.Class1
    
    On Error GoTo err1
    
    Set MyObj = CreateObject("DCOMDemo_Svr.Class1")
    MsgBox "Server Time=" & MyObj.ServerTime & " Client Time=" & Time
    
    Exit Sub
    err1:
    MsgBox "Connection failed: Error " & Err.Number & " - " & Err.Description
    
  8. 파일 메뉴에서 다른 이름으로 저장을 선택한 다음, 클라이언트의 폴더 에 프로젝트를 저장합니다c:\DCOMDemo\Client.

  9. F5 키를 눌러 IDE에서 클라이언트를 실행하고 테스트합니다.

  10. 파일 메뉴에서 DCOMDemo_Cli 만들기를 선택하여 클라이언트를 컴파일한 다음 Visual Basic을 닫습니다.

서버 패키지

패키지 및 배포 마법사를 사용하여 평소와 같이 배포를 위해 서버를 패키지합니다. 서버는 DCOM을 사용하여 원격 클라이언트에 의해 인스턴스화됩니다. 서버에 대한 패키지를 만드는 동안 이 서버를 원격 자동화 서버로 사용할지, 이 목적을 위해 지원 파일을 포함할지 묻는 대화 상자가 표시됩니다. DCOM이 원격 자동화가 아니므로 아니요 단추를 클릭하기만 하면 됩니다. 원격 자동화는 DCOM으로 대체된 이전 기술입니다.

클라이언트 패키지

클라이언트를 패키징할 때 서버가 클라이언트와 동일한 컴퓨터에서 실행되지 않는다는 점을 고려하여 수행해야 하는 몇 가지 특정 단계가 있습니다. 클라이언트 패키지를 변경하면 형식 라이브러리(.tlb 파일)만 설치되고 서버의 실행 파일 대신 일부 추가 레지스트리 항목이 포함됩니다. 이 항목은 클라이언트 컴퓨터에서 실행되지 않기 때문에 필요하지 않습니다.

다음 단계를 사용하여 클라이언트를 패키지합니다.

  1. 패키지 및 배포 마법사를 시작한 다음 클라이언트의 프로젝트를 선택합니다.

  2. 패키지 단추를 클릭합니다. 패키지 유형 대화 상자에서 표준 설치 패키지를 선택하고 다음을 클릭합니다.

  3. 패키지 폴더 대화 상자에서 패키지를 저장할 폴더를 선택하고 다음을 클릭합니다. 이 경우 c:\DCOMDemo\Client\Package입니다.

    참고

    서버에 대한 종속성 정보가 없다는 대화 상자를 가져올 수 있습니다. 이 서버에 종속성이 없으므로 확인을 클릭합니다.

    이제 포함된 파일 대화 상자에 있어야 합니다.

  4. 서버의 실행 파일을 배포하지 않으려면 서버의 실행 파일 DCOMDemo_Svr.exe 선택을 취소한 다음 추가 단추를 클릭합니다.

  5. 형식의 파일 콤보 상자를 원격 서버 파일(*.vbr)으로 변경합니다.

  6. 서버의 프로젝트가 있는 폴더(이 경우 c:\DCOMDemo\Server)를 가리키고 관련 VBR 파일 DCOMDemo_Svr.VBR을 선택합니다. 열기를 클릭하면 파일 추가 대화 상자가 닫힙니다.

    참고

    DCOMDemo_Svr.VBRDCOMDemo_Svr.TLB라는 두 파일이 포함되어 있습니다. 다음 단추를 클릭합니다. 원격 서버 대화 상자에서 서버가 실행 중인 컴퓨터의 이름(Net Address)을 정의할 수 있습니다. 일반적으로 서버를 설치할 위치를 미리 알 수 없으므로 이 필드를 비워 두어야 합니다. 비워 두면 클라이언트를 설치할 때 메시지가 표시됩니다. 이 샘플의 경우 비워 둠을 유지합니다.

  7. 다음을 클릭하여 계속 진행합니다. 이제 패키지 및 배포 마법사에 대한 표준 절차를 진행할 수 있습니다. 이 경우 나머지 대화 상자에서 다음 을 클릭합니다.

서버 설치

이전에 만든 배포 패키지를 사용하여 실행하려는 컴퓨터에 서버를 설치합니다. 개발 컴퓨터를 사용하여 서버를 실행하려는 경우 Visual Basic이 서버를 컴파일할 때 등록하므로 설치할 필요가 없습니다.

클라이언트 설치

이전에 만든 배포 패키지를 사용하여 클라이언트를 실행하려는 컴퓨터에 설치합니다. 이 클라이언트는 DCOM 서버를 사용하고 배포 패키지를 만들 때 서버의 실제 위치를 비워 두므로 이제 이 위치를 제공해야 합니다. 설치 프로그램에서 이 위치를 묻는 메시지가 표시되면 서버를 설치한 컴퓨터의 이름을 입력합니다.

서버의 보안 설정

Windows NT 또는 Windows 2000 컴퓨터에 서버를 설치한 경우 보안을 구성해야 합니다. 다음 단계에 나와 있는 것처럼 Dcomcnfg를 사용하여 이 작업을 수행합니다. 이 단계에서는 클라이언트 컴퓨터와 서버 컴퓨터가 모두 도메인의 일부이며 클라이언트 컴퓨터에 로그온한 사용자가 도메인 사용자로 로그온된다고 가정합니다. 제안된 설정은 하나의 가능한 구성일 뿐입니다. 일반적이고 서버에 대한 광범위한 액세스 권한을 부여합니다. 이것은 단지 예일 뿐입니다. 실제 애플리케이션을 배포하고 보안이 환경에 중요한 경우 더 제한적인 옵션을 선택해야 합니다. 또한 이 예제 서버를 테스트하는 데 사용하는 컴퓨터가 다른 서버를 실행하는 데 사용되는 경우 다음을 변경하기 전에 현재 설정을 기록하고 테스트를 완료하는 즉시 원래 설정으로 돌아갑니다.

  1. 서버 컴퓨터에서 시작 단추를 클릭한 다음 실행을 선택합니다. 실행 대화 상자에서 Dcomcnfg를 입력하고 확인을 클릭합니다. Dcomcnfg를 실행할 수 있도록 관리자 권한이 있어야 합니다.
  2. 기본 속성 탭을 선택하고 이 컴퓨터에서 분산 COM 사용이 선택되어 있는지 확인합니다.
  3. 기본 인증 수준을연결로 설정하고 기본 가장 수준을식별으로 설정합니다.
  4. 기본 보안 탭을 선택합니다.
  5. 기본 액세스 권한 패널에서 기본값 편집 단추를 클릭합니다.
  6. 모든 사용자 및 시스템이 액세스 허용 권한이 있는 목록에 포함되어 있는지 확인합니다. 그렇지 않은 경우 추가 단추를 사용하여 목록에 추가할 수 있습니다. 목록이 완료되면 확인을 클릭합니다.
  7. 기본 시작 권한 패널에서 기본값 편집 단추를 클릭합니다.
  8. 모든 사용자 및 시스템이 시작 허용 권한이 있는 목록에 포함되어 있는지 확인합니다. 그렇지 않은 경우 추가 단추를 사용하여 목록에 추가합니다. 목록이 완료되면 확인을 클릭합니다.
  9. 애플리케이션 탭 선택하고 서버 DCOMDemo_Svr.Class1을 강조 표시한 다음 속성 단추를 클릭합니다.
  10. 일반 탭을 선택하고 인증 수준을기본값으로 설정한 다음 위치 탭을 선택합니다. 선택된 유일한 옵션은 이 컴퓨터에서 애플리케이션 실행이어야 합니다.
  11. 보안 탭을 선택하고 기본 액세스 권한 사용 및 기본 시작 권한 사용 옵션이 선택되어 있는지 확인합니다.
  12. ID 탭 선택하고 시작 사용자 옵션을 검사 확인을 클릭하여 서버의 속성 대화 상자를 닫은 다음 확인을 다시 클릭하여 Dcomcnfg를 닫습니다. 보듯이 테스트 서버는 모든 기본 설정을 사용합니다. 자체 서버를 배포할 때 애플리케이션과 관련된 설정을 정의해야 합니다. 모든 사용자 지정 설정이 기본 설정보다 우선합니다.

이제 서버를 테스트할 준비가 되었습니다. 클라이언트 컴퓨터에서 클라이언트를 시작하고 실행 단추를 클릭합니다. 서버 시간을 나타내는 메시지 상자가 표시됩니다. 이 샘플을 성공적으로 테스트할 수 없는 경우 "참조" 섹션에 나열된 문제 해결 문서 Q269330 참조하세요.