SSIS日志文件、动态文件路径和拒绝访问错误

SSIS日志文件、动态文件路径和拒绝访问错误,ssis,bids,Ssis,Bids,我有一个父包,我在其中设置了一个变量,该变量指向一个文件夹,我想在其中写入包的执行日志。这个父包执行子包并为子包的变量设置值 在子包中,将启动包日志记录,并使用以下表达式构建到日志文件的连接字符串: [User::LogFolder] + "\\" + [System::PackageName] + ".log" 但我的软件包在第一步总是失败,并显示以下信息: Error: 0xC001404B at Child Package, Log provider "SSIS log provider

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

在子包中,将启动包日志记录,并使用以下表达式构建到日志文件的连接字符串:

[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.
错误发生在投标书内部。如果我静态地将日志文件的路径设置为相同的路径,那么它运行时不会出现问题,因此似乎不会出现权限问题。有没有关于如何解决这个问题的建议? 提前谢谢


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

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

根据错误,它声明“拒绝访问”,这显然是权限问题。在子包中放置断点,并检查LogFolder的变量值。@Sreedhar感谢您的评论。我已经验证了路径,它指向正确的位置。不幸的是,正如我在帖子中所说,如果我将变量设置为相同的静态v表达式计算结果的值,错误消失。@Sreedhar我想我找到了错误的原因,但不知道如何解决。我的包是一个子包,变量[User::LogFolder]是从父包填充的。问题是当包启动时,[User::LogFolder]还没有值但已报告包启动事件,无法计算表达式。请检查此项:@Sreedhar我知道如何将变量从父级传递到子级。问题是,在初始化这些变量以生成日志路径之前,包尝试使用它们,从而导致错误。Y结束了对子包中LogFolder值的硬编码,但希望找到一个elegant解决方案,比如强制日志提供程序在尝试写入任何内容之前等待var初始化。