문제

Excel 파일 (데이터 흐름 소스)을 읽고 OLEDB 대상 데이터 흐름 항목을 사용하여 데이터를 SQL Server로 전송하는 SSIS 패키지가 있습니다.이 패키지는 SSIS 객체 모델을 사용하여 .NET 응용 프로그램에 의해 실행됩니다. 응용 프로그램 하위 폴더 내의 파일 시스템에 저장된 패키지.

패키지는 내 개발/테스트 머신에서 잘 작동합니다.이 기계에는 Win2k3 32 비트가 있습니다. SSIS는 입찰 32 비트 환경에서 구축되었습니다.

Win2k3 x64 표준판이있는 프로덕션 머신 에이 응용 프로그램을 배치하면 오류가 발생합니다.

OLE DB 오류가 발생했습니다. 오류 코드 : 0x80040154. OLE DB 레코드를 사용할 수 있습니다. 출처 : "Microsoft Ole DB 서비스 구성 요소"Hresult : 0x80040154 설명 : "등록되지 않음". Connection Manager "Excel Connection Manager"에 대한 AcquiReConnection 메서드 호출 오류 코드 0xc0202009에서 실패했습니다. 구성 요소 "Excel 소스"(630) 유효성 검사에 실패하고 오류 코드 0xc020801c.

프로젝트의 run64bitruntime 속성 (설계 시간 동안)을 입찰에서 실행할 때 문제를 해결하는 다른 게시물에서 읽었습니다.

SSIS 객체 모델을 통해이 속성을 어떻게 설정합니까?

다음은 패키지를 실행하는 코드의 일부입니다.

   _application = New Application()
   _package = New Package()
   _package = _application.LoadPackage(packageName, Nothing)
   _updateResult = _package.Execute()

감사

Masood

도움이 되었습니까?

해결책

run64bitruntime 속성은 입찰가 내부의 패키지에만 적용됩니다. 입찰 외부에서 실행할 때이 속성을 설정할 필요가 없습니다.

코드를 실행할 때 패키지가 64 비트 모드로 실행되고 있지만 Excel 은이 문제를 지원하지 않는다고 생각합니다. 이 작업을 수행하려면 32 비트 버전의 DTEXEC를 시작하려면 껍질을 벗겨야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top