2014-05-16 2 views
-1

실행 파일이 있습니다. Int 환경에서 실행되지 않는 Dev 환경에서 실행할 수 있습니다. UNC 경로를 사용하여 Int에서 원격으로 .EXE를 실행하려고하면 .EXE가 16 비트 응용 프로그램이고 Int 시스템에서 실행할 수 없다는 오류가 발생합니다. 이 오류의 문제점은 .EXE를 빌드하고 16 비트 응용 프로그램이 아닙니다. Int .EXE를 호출하기 위해 SSIS 패키지를 실행하려고하면 16 비트 오류가 발생하지 않지만 .EXE는 실행되지 않습니다.SSIS가 INT 서버에서 프로세스 실행 태스크를 사용하여 .EXE를 실행하지 않습니다.

프로세스 프로세스에서 .EXE의 위치를 ​​하드 코딩하고 SSIS 패키지를 실행중인 컴퓨터를 기반으로 동적으로 위치를 설정하는 변수를 사용했습니다. (모두 Dev에서 작동하고 Int에서는 작동하지 않습니다.) Int에서 Dev로 Int에서 .EXE를 호출 할 수도 있습니다. 이것은 .EXE가 Int에서 Dev로 끌어 당겨지기 때문에 놀랄 일이 아닙니다.

.EXE가 Dev 환경에서는 실행되지만 Int 환경에서는 실행되지 않는 이유는 무엇입니까? 시스템 관리자마다 환경이 동일합니다.

+0

정확한 오류 란 무엇인가요? 그것을 게시하십시오. UNC를 통해 명령 줄에서 직접 실행 해 보았습니까? –

+0

정확한 오류 : 지원되지 않는 16 비트 응용 프로그램. "EXE"프로그램이나 기능을 64 비트 버전의 Windows와 호환되지 않기 때문에 시작하거나 실행할 수 없습니다. 소프트웨어 공급 업체에 문의하여 64 비트 Windows 호환 버전을 사용할 수 있는지 확인하십시오. DBA가 서버에서이를 실행하면 다음 오류가 발생합니다. NTVDM에 하드 오류가 발생했습니다. [Execute Process Task] 오류 : "filepath"에서 "EXE"를 실행할 때 프로세스 종료 코드가 "128"이고 예상 값이 "0"이었습니다. – mungea05

+0

그건 상당히 신비 롭습니다. 16 비트를 말하는 두 개의 메시지입니다. DEV에서 실행하면 NTVDM.exe 프로세스가 시작됩니까? –

답변

0

관련 문제에 대한 답변을드립니다.

문제는 EXE를 Dev 서버에서 Int 서버로 옮기는 파일 전송 프로세스 때문이었습니다. 이 프로세스는 Robocopy 스크립트를 통해 처리되었으며 (여전히 매개 변수를 얻을 수 없음) 문제를 일으킨 것으로 보입니다.

무엇이 문제의 원인인지는 모르겠지만 스크립트가 어셈블리를 통해 복사하지 않고 서버가 어셈블리없이 EXE가 16 비트 응용 프로그램이라고 생각했습니다. 문제를 진단하는

유용한 링크 :

실행 this PowerShell 명령 스크립트는 각 서버의 응용 프로그램의 "비트 수"를 확인합니다.

+0

다행 이군. 어셈블리가 별도의 파일입니까? 매우 편리한 스크립트처럼 보입니다. 나는 이것을 해낼 수 없었습니다. –

+0

어셈블리 정보는 실행 파일의 속성 부분에있는 파일입니다. Robocopy는 전송 중에 특성 파일을 무시해야합니다. – mungea05