2010-08-09 3 views
4

제목이 표시되면서 interop을 사용하여 Excel을 열고 새 통합 문서를 만드는 C# 콘솔 앱이 있습니다. 코드는 명령 줄을 통해 콘솔 앱을 실행할 때 잘 작동합니다. 예약 된 작업을 통해 콘솔 응용 프로그램을 실행하는 경우에는이 예외가 발생합니다 :C# Excel 응용 프로그램 인 Excel Interop - 예약 된 작업으로 실행 중 오류가 발생했습니다. Task - System.UnauthorizedAccessException

System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 

다음 호출에서 발생합니다 :

_xlApp = new Excel.Application() 

예약 된 작업은 내가 오전 (내 자격 증명을 사용하도록 설정되어 관리자). 다른 포럼을 기반으로 구성 요소 서비스 -> 컴퓨터 -> 내 컴퓨터 -> DCom 구성 -> Microsoft Excel 응용 프로그램에서 내 계정에 대한 모든 권한을 부여했지만 행운은 없음을 확인했습니다.

저는 Windows 7 Enterprise 64 비트를 사용 중입니다. 다음 단계가 무엇인지 잘 모르겠 으면 어떤 도움도 받으실 것입니다

답변

2

내가 라이브러리를 호출하는 Windows 서비스를 작성 결국 Excel 생성 코드가 들어 있습니다. 이로 인해 오류가 수정되었습니다. 그러나 workbook.Save() 메서드를 호출 할 때 또 다른 COM 예외가있었습니다. 그 실수를 어쨌든 시도하지 않아도 그 오류는 사라지지 않을 것입니다. 나는 이것이 보안상의주의 사항이며 따라서 의도적으로 진술 한 또 다른 글을 읽었다.

그러나 통합 문서를 호출하십시오. SaveAs()은 Windows 서비스에서 호출 할 때 동일한 결과를 생성하며 잘 작동합니다.

입력 해 주셔서 감사합니다. 이 게시물이 Excel Interop 자동화에 어려움을 겪고있는 다른 사람들에게 도움이되기를 바랍니다.

2

80070005COM 액세스가 거부 됨 오류입니다. 자격 증명에 Interop Library를 인스턴스화 할 수 있습니까? link을 확인하고 디버그 단계를 따르십시오.
(난 당신이 이미 DCOMConfig의 일을 한 것을 알고 있지만, 거기에 더 테스트 시나리오는이 링크에 있고 여기에 희망 무언가가 당신에게 도움이 될 것입니다)

+0

로컬 보안 정책 및 dcom 구성에서 모든 단계를 시도했지만 동일한 오류가 여전히 발생합니다. – cyrix86

+0

Interop Library를 인스턴스화 할 수있는 권한이 있습니다. 명령 줄/탐색기를 통해이 응용 프로그램을 성공적으로 실행했습니다. 예약 된 작업에서만 실패합니다. – cyrix86

+0

예약 된 작업이 다른 사용자로 실행됩니까? – funkymushroom

0

비슷한 문제가 있었지만 다음 단계를 수행하여 문제를 해결했습니다.

DCOM 구성

  1. 시작을 클릭 ->
  2. 이 DCOMCNFG를 입력하고 OK를 누릅니다 실행합니다. 그러면 DCOMCNFG 창이 열립니다.> 구성 요소 서비스 - -> 컴퓨터 -> 내 컴퓨터
  3. 마우스 오른쪽 버튼으로 클릭 "내 컴퓨터"를 선택 속성
  4. "기본 속성"탭을 선택
    • 사용 콘솔 루트에 나무 아래
    • 검색 이 컴퓨터에서 COM을 분산 - 옵션은
    • 기본 인증 수준을 체크 -
    • 기본 가장 수준 연결로 설정 -
  5. 를 확인하기 위해 설정
  6. "COM 보안"탭을 선택하십시오
  7. 액세스 권한을 클릭하십시오 '기본값 편집 a. 로컬 및 원격 액세스 권한이 설정된 "익명", "모든 사람", "대화 형", "네트워크", "시스템"을 추가하십시오.
  8. 시작 및 활성화 권한 '기본 설정 편집 a. 로컬 및 원격 액세스 권한이 설정된 "익명", "모든 사람", "대화 형", "네트워크", "시스템"을 추가하십시오. OK
  9. 을 클릭하여 Excel을 여는 동안

나중에 내가 예외를받은 DCOMCNFG 창을 닫습니다. 따라서 서버에서 다음 경로를 사용할 수 있는지 확인하십시오.

  • C : \ WINDOWS \ SysWOW64와 \ 설정 \ systemprofile \ 바탕 화면
  • C : \ WINDOWS \ SysWOW64와 \ 설정 \ systemprofile \의 AppData \ 로밍 \ 마이크로 소프트
  • C : \ WINDOWS \ SysWOW64와 \ 설정 \ systemprofile \ AppData \ Local \ Microsoft

이 정보는 저를 좋아할 것입니다.

0

또한이 문제가있었습니다. 예약 된 작업에서 작업 설정의 일반 탭에서 "최고 권한으로 실행"상자를 체크해야한다는 것이 밝혀졌습니다. 이렇게하면 문제가 해결되었습니다. 아주 간단했습니다! 다른 사람에게 도움이되기를 바랍니다.

관련 문제