2013-07-15 2 views
2

패키지의 실행 로그를 쓰려는 폴더를 가리키는 변수를 설정하는 부모 패키지가 있습니다. 이 상위 패키지는 하위 패키지를 실행하고 하위 변수에도 값을 설정합니다.SSIS 로그 파일, 동적 파일 경로 및 액세스 거부 오류

Error: 0xC001404B at Child Package, Log provider "SSIS log provider for Text files": The SSIS logging provider has failed to open the log. Error code: 0x80070005. Acces denied. 
:

[User::LogFolder] + "\\" + [System::PackageName] + ".log" 

하지만 내 패키지는 항상이 메시지와 함께 첫 번째 단계에서 실패 : 아이에서

는 식으로 내장되어 로그가 stetted되는 패키지 및 로그 파일을 연결 문자열을 패키지

BIDS 내부에서 오류가 발생합니다. 로그 파일의 경로를 정적으로 동일한 경로로 설정하면 문제없이 실행되므로 사용 권한 문제가 아닌 것 같습니다. 이 문제를 해결하는 방법에 대한 제안? 미리 감사드립니다.

편집 : [User : LogFolder] 값이 상위 패키지에서 가져오고 패키지가 로그를 열려고 할 때 값이 전달되지 않아서 오류가 발생하여 문제가 발생한 것 같습니다. 이 문제를 해결할 방법이 있습니까?

+0

분명히 권한 문제 인 '액세스가 거부되었습니다'라고 나와 있습니다. 하위 패키지에 중단 점을 넣고 LogFolder의 변수 값을 확인하십시오. – Sreedhar

+0

@Sreedhar 의견을 보내 주셔서 감사합니다. 이미 경로를 확인했습니다. 그리고 그것은 올바른 위치를 가리키고 있습니다. 불행히도, 내가 게시물에 말했듯이, 변수를 표현식과 동일한 정적 값으로 설정하면 오류가 사라집니다. – Oscar

+0

@Sreedhar 오류의 원인을 찾은 것 같아요. 하지만 해결 방법을 모르겠다. 내 패키지가 하위 패키지이고 변수 [User :: LogFolder]가 부모로부터 채워진다. 문제는 패키지가 시작될 때 [User :: LogFolder] 패키지 시작 이벤트가보고되고 표현식을 평가할 수 없습니다. – Oscar

답변

1

답변을 찾았습니다. 레코드의 경우 문제는 상위 패키지에서 [User :: LogFolder] 값을 가져온 것입니다. 그리고 자식 패키지가 변수 값이 채워지기 전에 로그에 쓰려고 시도하여 오류가 발생했습니다. 패키지의 로그 값을 하드 코딩하여 해결했습니다. :-(