我有一个 SSIS 包,它执行批量插入,然后执行 SQL 任务,最后将一些数据库数据写入我们网络上的平面文件。如果我从 Visual Studio 2012 运行包,它运行良好。但是,如果我将包部署到 2012 SQL Server 上的集成服务目录并从那里运行,批量插入和 SQL 任务运行良好,但是当包尝试要输出到平面文件,我收到以下错误消息:
无法打开数据文件“\\nyfil006\Projects\Accounting\CostRecovery\Cafe de Novo\HospitalityCharges.csv”。HospitalityCharges 平面文件未能通过预执行阶段并返回错误代码 0xC020200E。
我能够将 System::UserName 输出到错误日志,这就是我认为应该是的:对平面文件目标中的文件夹(及其父文件夹)具有完全权限的帐户。我尝试创建一个空白版本的 HospitalityCharges.csv,并且对于输出平面文件的数据流任务,DelayValidation 设置为 True。我的系统管理员已根据此链接和此链接授予文件夹的网络服务权限,但这无济于事。我还使连接字符串成为此处所述的表达式。我们还创建了一个映射驱动器并将其用于目标连接字符串而不是 UNC 路径。没有喜悦。有谁知道为什么会这样?
另一个注意事项:如果我将平面文件目标更改为指向 C: 驱动器,则无论我是从 Visual Studio 还是从集成服务目录运行它,该包都可以正常运行。