yoursyun
Classic ASP 에서 C# DLL 사용을 위한 설정 본문
클래스 라이브러리 프로젝트 설정
1. 참조 > 어셈블리 > 프레임워크 System.EnterpriseService 추가
2. AssemblyInfo.cs 에서 어셈블리를 COM에 노출
AssemblyInfo.cs파일을 열고 [assembly: ComVisible(true)] 로 변경
3. 작업 클래스에 assembly 지시자 등록 및 : ServicedComponent 상속
using System.EnterpriseServices;
[assembly: ApplicationName("T_REST_API_HELLO")]
[assembly: Description("T_REST_API_HELLO hello print")]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationAccessControl(false)]
4. 서명 등록
5. 빌드하여 dll 을 생성한다.
서버측 작업
gacutil /i T_REST_API_HELLO.dll
regasm T_REST_API_HELLO.dll
regsvcs T_REST_API_HELLO.dll
빌드한 dll 에 대하여 위 3개 UTIL 을 이용하여 서버측 COM + 에 등록을 진행 한다.
서버에 위 3개 Util 없는 경우, 아래와 같이 처리해도 무관하다.
6.1. ..net 재배포 패키지 설치 하여 진행.
6.2. 개발자PC에서 위 3개 UTIL 을 .config 파이로가 함께 설치하고자 하는 dll 폴더위치로 복사하여 이용.
원격종료시 서비스 미동작이 발생 할 수 있다.
등록된 서비스에서 로컬서비스 계정으로 변경한다. ( 기본 : 대화형 사용자 )
헬로 월드 출력 dll 소스 |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.EnterpriseServices;
[assembly: ApplicationName("T_REST_API_HELLO")]
[assembly: Description("T_REST_API_HELLO hello print")]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationAccessControl(false)]
namespace T_REST_API_HELLO
{
public class HELLO : ServicedComponent
{
public string rtn_hello(string str)
{
return "hello module response : " + str;
}
}
}