如何解决SSIS错误“Excel文件已被其他用户专门打开”?

问题

我有一个在Visual Studio 2015 for SQL Server 2012中创build的SSIS包。该包从CRM中加载制表符分隔的文件和一些logging,执行一些处理,并在共享驱动器上的Excel文件中logging错误。 当我从Visual Studio中运行包时,包正确无误地执行。 但是,当我将包部署到服务器并试图从服务器运行包作为工作时,我得到错误:

Microsoft Access数据库引擎无法打开或写入文件。 它已经由另一个用户专门打开,或者您需要查看和写入其数据的权限。

尝试解决scheme

  • 我已经检查了excel文件所在的文件夹权限,并将其更改为允许每个人都可以完全访问该文件夹。 我对共享以及文件夹和个人文件做了这个

  • 我试着直接运行包,并作为SQL Server作业的一部分

  • 我能够独立于应用程序打开文件,所以它不会被其他用户locking

search后有很多方法可以尝试解决此问题。 你可以试试看:

  1. validation该文件是不是真正打开(检查任务pipe理器的可疑EXCEL.EXE进程)

  2. validation是否没有其他可能同时打开此文件的SSIS包(或其他后台进程)

  3. 创build一个等待(excel)文件解锁的自定义任务

参考