[Office.Interop] Server에서 Microsoft.Interop.Excel.dll 설정

2011. 1. 20. 19:10Others/C# 일반

Microsoft.Interop을 사용하여 엑셀 또는 워드 문서를 읽거나 작성할 수 있습니다. MS Office가 읽을 수 있는 모든 파일을 읽고 조작할 수 있지만 실제 호스팅 방법은 상당히 까다롭습니다.

여기서는 Windows 2008 64Bit를 기준으로 Server에서 Microsoft.Interop를 사용할 수 있게 하는 방법에 대해 설명을 드립니다.

  1. 먼저 Server에 해당 MS Office를 설치합니다.
  2. Primary Interop Assemblies Redistributable를 설치합니다. 이 설치를 통해 Server의 Application들이 해당 Office Interop Assembly를 참조할 수 있게 됩니다. 이 설치파일은 GAC에 Office Assembly들을 등록해 줍니다.
  3. 세 번째로 Micorsoft.Interop을 사용한 Applicaiton의 Application Pool에 설정된 사용자 계정을 확인합니다. II7을 기준으로 다음과 같습니다.
    1. IIS를 열고 [응용 프로그램 풀]을 선택합니다.
    2. Microsfot.Interop를 사용하는 Application의 Pool을 선택합니다.
    3. 오른쪽 [작업]판에서 [고급 설정]을 클릭합니다.
      고급 설정 클릭
    4. [프로세스 모델]의 [ID] 값 오른쪽에 위치한 […]버튼을 클릭합니다.
      프로세스 모델의 ID
    5. [기본 제공 계정]을 사용하시거나 직접 계정을 지정하실 수 도 있습니다.
      기본 제공 계정 설정
      위와 같이 LocalSystem을 사용하면 보안에 굉장히 취약해지지만 해당 Application에 모든 관리자 권한을 부여하는 것이므로 이 단계 이후의 설정 없이 Application이 Microsoft.Interop를 사용할 수 있게 됩니다.
  4. 이제 계정을 파악했으니, 해당 계정에 Microsoft Excel Application DCOM의 접근 권한을 부여합니다. 64Bit 운영체제에서는 32Bit Application의 DCOM을 바로 확인할 수 없으므로 다음 과정을 따릅니다.
    1. 시작-[실행]을 클릭하고 [mmc –32]를 입력하고 확인을 클릭합니다.
      mmc -32 실행
    2. [파일(F)]-[스냅인 추가/제거(M)]를 클릭합니다.
      스냅인 추가/제거(M)
    3. [사용 가능한 스냅인(S)]에서 [구성 요소 서비스]를 찾아 더블 클릭합니다. 그러면 아래 그림처럼 [선택한 스냅인(E)]에 [구성 요소 서비스]가 추가될 것입니다.
      구성 요소 서비스 추가
    4. [확인]을 클릭하여 [구성 요소 서비스]가 [콘솔 루트]에 추가될 수 있도록 합니다. 그리고 아래 그림처럼 [콘솔 루트]->[구성 요소 서비스]->[컴퓨터]->[내 컴퓨터]->[DCOM 구성]까지 내려갑니다.
      DCOM 구성 선택
    5. [DCOM 구성] 하위의 Microsoft Excel Application을 찾아 마우스 오른쪽 버튼으로 클릭한 뒤 [속성(R)]을 클릭합니다.
      Microsoft Excel Application 속성
    6. 나타나는 [Microsoft Excel Application 속성] 창에서 [보안]탭을 선택합니다. 그리고 [시작 및 활성화 권한]을 [사용자 지정]으로 선택한 뒤 [편집(E)]버튼을 클릭합니다.
      사용자 지정 선택
    7. [시작 및 활성화 권한] 창에서 위에서 확인한 Application Pool 계정을 추가해야 합니다. 먼저 추가 버튼을 클릭합니다.
      시작 및 활성화 권한
    8. 보통 Application Pool에서 기본적으로 사용되는 계정인 [Network Service]계정에 권한을 부여하도록 하겠습니다.
      Network Service 추가
    9. [로컬 시작], [로컬 활성화] 권한을 부여합니다.
      [로컬 시작], [로컬 활성화] 권한 부여
    10. [ID] 탭을 클릭한 후 응용 프로그램을 실행 권한이 있는 계정을 설정합니다.
      ID 탭 설정
    11. IIS에서 사이트를 새로고침 하신 후 Microsoft.Interop.Excel이 정상적으로 실행되는지 확인해주세요.

감사합니다.