http://www.devpia.com/Forum/BoardView.aspx?no=20029&page=10&Tpage=18&forumname=csharp_qa&stype=&ctType=&answer=&KeyR=title&KeyC=

 

 

1. 일단은 클래스 라이브러리 프로젝트를 선택하시구요...

    COM+를 작성할 것들을 코딩하시구요...

 

2. 일단 COM+를 만들려면 System.EnterpriseService를 참조 추가하시구요...

   그리구 네임스페이스를 적어주시구요...

   그런 다음 만드시는 클래스는 반드시 ServicedComponent를 상속 받아야합니다...

 

3. 아래는 COM+의 주요 서비스들인데요...

   이 서비스들을 이용하시려면 적절한 어트리뷰트를 추가하셔야 하구요...

항목설명
자동 트랜잭션 처리선언적 트랜잭션 처리 기능을 적용합니다.
BYOT(Bring Your Own Transaction)트랜잭션 상속 형식을 허용합니다.
COMTI자동화 개체에서 CICS 및 IMS 응용 프로그램을 캡슐화합니다.
CRM트랜잭션이 없는 리소스에 원자성 및 영속성 속성을 적용합니다.
Just-In-Time 활성화메서드가 호출될 때 개체를 활성화하고 호출이 반환될 때 활성화를 취소합니다.
느슨하게 결합된 이벤트개체 기반 이벤트를 관리합니다.
개체 생성클래스의 인스턴스를 생성할 때 영구 문자열 값을 인스턴스에 전달합니다.
개체 풀링이미 만들어진 개체들이 포함된 풀을 제공합니다.
전용 구성 요소out-of-process 호출로부터 구성 요소를 보호합니다.
대기열 사용 구성 요소비동기 메시지 대기열을 제공합니다.
역할 기반 보안 역할에 따라 보안 권한을 적용합니다.
SOAP 서비스구성 요소를 XML Web services로 게시합니다.
동기화동시성을 관리합니다.
XA 상호 운용성X/Open 트랜잭션 처리 모델을 지원합니다.

 

4. 해당 기능들을 다 정의 했다고 한다면...

    강력한 이름의 어셈블리를 추가해야 합니다...

    그럴려면 프로젝트 파일 중에서 AssemblyInfo.cs 파일을 여시구요...

    [assembly: AssemblyKeyFile("")] 이 부분에 KeyFile의 경로를 설정하셔야 합니다...

    키 생성은 sn.exe를 이용하면 됩니다...

    sn -k XXXX.snk

 

5. 이제 모든 것이 완료되었습니다...

   이 프로젝트를 빌드하시면 DLL 파일이 생깁니다...

   이 DLL 파일을 이용해서 이제 COM+에 등록을 해야 합니다...

 

6. 전역 어셈블리에 추가하시려면 gacutil.exe를 이용하셔서 전역 어셈블리에 등록을 하셔야 합니다...

 

ex) gacutil /i c:\mydll.dll

 

7. 이제 COM+ 응용 프로그램에 등록하실 차례인데요...

   regsvcs.exe를 이용하셔서 COM+ 응용 프로그램에 등록하시면 됩니다...

regsvcs /appname:myTargetApp c:\myTest.dll

 

 

8. 이렇게 되면 이제 모든 것이 완료 되었습니다...

    확인하시려면 구성요소 서비스에서 등록한 COM+ 응용 프로그램이 있는지 확인하시면 됩니다...

 

* 참고 자료 : MSDN에서 COM+라고 치시면 많은 관련 문서들이 있습니다...

그럼!~~~

+ Recent posts