SSIS 执行任务以将 Excel 转换为 CSV 时出现问题

Issue with SSIS executing task to convert Excel to CSV

我们有一项任务需要将 excel 文件自动转换为 csv 文件,以准备将其加载到 SQL 数据库中。开发人员将此过程构建到 SSIS 包中。对于转换,他们最初尝试让 SSIS 包中的任务执行 VBscript 来转换文件。当他们在本地机器上 运行ning 时,它工作正常。当他们 运行 通过服务器上的 VS 手动打包时,它 运行 是正确的。当他们 运行 通过集成目录手动打包时,它会 运行 正确。我们以我们的帐户和服务帐户的身份执行此操作,并获得了相同的结果。然而,当我们将其作为一项作业进行调度时,它会挂在执行 VBScript 的进程部分。没有错误,它会一直挂起,直到你杀死了工作。

该作业作为服务帐户执行,该帐户在服务器上具有完全管理员访问权限,对存储和转换文件的共享(位于同一服务器上)的明确完全访问权限以及对 SQL。作业所有者设置为使用服务帐户的 sa。所有的工作都是从集成目录中执行包,如果你 运行 它独立于工作,它就可以工作。当我们使用服务帐户将集成目录中手动 运行 的 ssisdb 执行报告与作业 运行 进行比较时,它们看起来是一样的,除了作业挂在转换任务上,而另一个则不然。

在花了一些时间试图解决这个问题之后,开发人员尝试了一个不同的解决方案。他们将转换脚本从使用 VBScript 更改为使用 C#。他们 运行 来自本地机器的包,包再次工作。这次当他们 运行 手动在服务器上失败时。当我们从集成目录中 运行 它失败时,当我们从作业中 运行 它失败时。

我们不断收到的错误是 "Create CSV file: Error: Exception has been thrown by the target of an invocation" 在花了几个小时查看此错误后,似乎没有任何建议起作用。

我们还在新建的服务器上尝试了这些相同的解决方案,以确保我们没有处理可能已经更改的奇怪配置设置(它是开发服务器),但它仍然在那里失败。

在这一点上,我们对正在发生的事情感到很迷茫。第一个解决方案有效,但由于某种原因永远无法作为工作。第二个解决方案在任何地方都有效,除非在服务器上 运行。

我们正在寻找其他一些解决方案来解决这个问题。接下来可能会尝试使用 powershell 来转换文件,但不确定这是否会让我们回到同样的问题。非常感谢你们的任何建议

此外,我们正在使用 SQL Server 2012 开发版、VS 2012 专业版、Windows Server 2012 R2

这可能是因为 Excel 在尝试 运行 作业(使用 Excel)时存在错误,并且没有用户登录到特定计算机。这可能还会影响 excel 库。解决方案是创建以下 2 个文件夹:

  • C:\Windows\SysWOW64\config\systemprofile\Desktop
  • C:\Windows\System32\config\systemprofile\Desktop

然后重启机器。 :)

(已编辑以显示需要重新启动。感谢 Dustin 检查此内容)