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