yoursyun

Classic ASP 에서 C# DLL 사용을 위한 설정 본문

program/c#

Classic ASP 에서 C# DLL 사용을 위한 설정

yoursyun 2017. 11. 15. 18:02

클래스 라이브러리 프로젝트 설정


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 + 에 등록을 진행 한다.

서버에 위 3Util 없는 경우, 아래와 같이 처리해도 무관하다.

 

6.1. ..net 재배포 패키지 설치 하여 진행.

6.2. 개발자PC에서 위 3UTIL .config 파이로가 함께 설치하고자 하는 dll 폴더위치로 복사하여 이용.


COM+ 실행권한

원격종료시 서비스 미동작이 발생 할 수 있다.



등록된 서비스에서 로컬서비스 계정으로 변경한다. ( 기본 : 대화형 사용자 )

 

 



헬로 월드 출력 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;

        }

    }

}


반응형