2017-02-24 6 views
2

이 문제가 해결되었지만 문제를 해결할 수있는 답변을 찾지 못한 경우 사과드립니다. 참조하는 스크립트 작업이있는 SSIS 패키지가 있습니다.DTEXEC을 사용하여 mso.dll을 참조하는 SSIS 패키지 실행

C : \ Program Files (x86) \ Common Files \ microsoft shared \ OFFICE16 \ MSO.DLL입니다.

SQL Server 데이터 도구를 통해 실행하면 패키지가 예상대로 실행됩니다.

Integration Services 카탈로그에 배포하고 수동으로 실행하면 패키지가 예상대로 실행됩니다. 그런 다음 xp_cmdshell을 사용하도록 설정했습니다. 패키지가 명령을 사용하여 실행 된 경우

는 :

DECLARE @returncode INT; 
EXEC @returncode = xp_cmdshell 'DTEXEC /ISSERVER "\SSISD 
\test\test_DW_ETL\test_script_task.dtsx"' 

그것은

을 ActiveX 구성 요소를 만들 수 없습니다 오류 메시지와 함께 실패 할 때 '아무튼 다른 SSIS 패키지 스크립트 작업에 Microsoft Objects 참조가 있고 동일한 DTEXEC 명령을 사용하여 실행되면 성공적으로 실행되었습니다. 스크립트 작업 패키지는 명령을 사용하여 실행하면

:

DECLARE @returncode INT; EXEC @returncode = xp_cmdshell '@"C:\Program 
Files\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /ISSERVER "\SSISDB 
\test\test_DW_ETL\test_script_task.dtsx"' 

는 32 비트 dtexec를를 사용하는을, 패키지는 오류 메시지와 함께 실패

ActiveX 구성 요소를 만들 수 없습니다

로컬 시스템, 로컬 서비스, 네트워크 서비스, 내 계정을 사용하여 SQL Server가 실행되는 계정을 변경해 보았습니다. 그리고 서비스 계정 - 어느 것도 차이를 만드는 것처럼 보이지 않았습니다.

DTEXEC에서 mso.dll에 액세스 할 수 없다는 것이 의심됩니다.

이것은 꽤 일반적인 방법이어야합니다. 그래서 나는 분명히 분명한 단계를 빠뜨려야한다고 생각합니다. 아무도 도움을 줄 수 있습니까?

감사합니다,

이안 다른 사람이이 문제를 가지고있는 경우에 후손을 목적으로

+1

오타를 만들었습니까? 아니면 'C : \ Program Files \ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTExec.exe'가 32 비트 DTExec를 호스팅한다고 생각 했습니까? 내 컴퓨터에서 64 비트 DTExec을 호스팅하기 때문에 (예상대로); 32 비트 버전은'C : \ Program Files (x86) \ Microsoft SQL Server \ 120 \ DTS \ Binn \ DTExec.exe'에 있어야합니다. –

+0

오타를 강조 표시해 주셔서 감사합니다. 나는 앞으로 쓰는 내용에 더 많은 관심을 기울일 필요가 있습니다! –

답변

1

업데이트. 첫번째 예에서

는, I는 저장 프로 시저를 참조
으로 xp_cmdshell을 교체 - SSISDB.catalog.create_execution
- SSISDB.catalog.set_execution_parameter_value
- SSISDB.catalog.start_execution

I는 확보 프록시 계정이 SSIS 패키지를 실행할 수 있도록 SQL Server (자격 증명과 사용 권한에 대한 권한)에 올바르게 설정되어 있어야합니다.

SSIS 패키지는 Excel 개체를 참조하므로 DCOM (MMC comexp.msc) 설정을 사용하여 프록시 계정에서 참조하는 계정에 시작 및 활성화 권한과 액세스 권한이 있는지 확인하십시오. 이 외에도 ID는 대화 형 사용자로 실행되도록 설정되었습니다.

개발 환경에서 Visual Studio, SSDT 및 SSMS를 설치했습니다. 테스트 환경에는 SSMS 만 있습니다. 결과적으로 많은 구성 요소가 누락되어 SSDT 및 Windows SDK 8.1이 설치되었습니다. 우리는 또한 다음과 같은 디렉토리가 존재하는지 확인했다 :
- C : \ WINDOWS \ SysWOW64와 \ 설정 \ systemprofile \ 바탕 화면
- C : \ WINDOWS \ system32를 \ 설정 \ systemprofile \ 바탕 화면

감사합니다,

Ian