2

我有一个父包,我在其中设置了一个变量,该变量指向我想在其中写入包的执行日志的文件夹。该父包执行子包并为子变量设置值。

在子包中,包日志记录被设置,到日志文件的连接字符串是用表达式构建的:

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

但是我的包裹总是在第一步失败并显示以下消息:

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.

错误发生在 BIDS 内部。如果我将日志文件的路径静态设置为相同的路径,那么它运行没有问题,所以它似乎不是权限问题。关于如何解决这个问题的任何建议?提前致谢。

编辑:问题似乎发生了,因为 [User::LogFolder] 值是从父包中获取的,并且当包尝试打开日志时,值尚未传递,从而导致错误。有没有办法解决这个问题?

4

1 回答 1

1

我找到了答案。对于记录,问题在于 [User::LogFolder] 值是从父包中获取的。并且子包在变量值被填充之前试图写入日志,导致错误。我解决了它对包中的日志值进行硬编码。:-(

于 2014-05-14T10:57:19.780 回答