我使用SSDT和Visual Studio执行了一个SSIS包。当我尝试执行另一个包时,我得到一个错误,说“进程无法访问文件.ispac,因为它正在被另一个进程使用”。我试过重新启动,但这是一个痛苦的背后。如何解决这个错误?
rsl1atfo1#
在开发SSIS包时,我得到了错误 “进程无法访问文件'.ispac',因为它正在被另一个进程使用”*。尝试关闭SSDT并再次运行它,但在编译时仍然出现相同的错误。然后,在互联网上搜索后,我们得到了解决方案:
解决方案:
1.进入任务管理器->详细信息选项卡。1.找到进程“DtsloggHost.exe”。1.杀死这个过程。此过程可能有多个示例。把他们全杀了。在这样做之后,我再次尝试编译该包,并且成功了。
yzxexxkh2#
你可以检查你的补丁级别。我在2015年发布的SSDT中更频繁地看到这一点,但从那时起就没有经常咬我。
Sysinternals有一个很好的工具,叫做Process Explorer。它是免费的,不需要安装,并帮助您看到所有正在发生的事情在您的计算机上。在本例中,您希望找到在文件(MyProject.ispac)上有脏手指的进程,然后杀死它。https://helpcenter.gsx.com/hc/en-us/articles/115015880627-How-to-Identify-which-Windows-Process-is-Locking-a-File-or-Folder另一种不需要运行Process Explorer的方法是将构建从开发更改为发布(然后再返回)。Chicken Sandwich No Pickles的评论如何从开发转换为发布?在工具栏中,单击您在工具栏中看到Development的位置(或右键单击解决方案资源管理器中的解决方案)
在配置管理器中,您可能会/可能不会在配置下提供列表。SSIS项目的早期版本预定义了开发/发布配置,但看起来较新的版本没有。如果没有其他选项,请通过<New...>创建一个
<New...>
从开发配置中复制值!
现在,当您调试时,ProjectFolder/bin/Release将存在,dtsdebughost.exe将锁定该文件并释放指向ProjectFolder/bin/Development/Project.ispac的指针
jhiyze9q3#
这里有一个简单的脚本,你可以在powershell中运行,以杀死所有的ssis调试进程“DtsloggHost.exe”和解锁ispac文件。unlock_ispac.ps1
# if ssis error with 'The process cannot access the file ‘.ispac' # run this file in powershell get-process | foreach { $pName = $_ if($pName.Name -eq "DtsDebugHost") { $pName.Kill() } }
lkaoscv74#
如果有人着急,只需在cmd提示符中运行以下命令:
taskkill /im DtsDebugHost.exe /f
所有其他答案都很好地解释了这一点。这只是如果你正在寻找复制/粘贴的东西,让它结束:)
4条答案
按热度按时间rsl1atfo1#
在开发SSIS包时,我得到了错误 “进程无法访问文件'.ispac',因为它正在被另一个进程使用”*。
尝试关闭SSDT并再次运行它,但在编译时仍然出现相同的错误。然后,在互联网上搜索后,我们得到了解决方案:
解决方案:
1.进入任务管理器->详细信息选项卡。
1.找到进程“DtsloggHost.exe”。
1.杀死这个过程。
此过程可能有多个示例。把他们全杀了。在这样做之后,我再次尝试编译该包,并且成功了。
yzxexxkh2#
你可以检查你的补丁级别。我在2015年发布的SSDT中更频繁地看到这一点,但从那时起就没有经常咬我。
查找并杀死进程
Sysinternals有一个很好的工具,叫做Process Explorer。它是免费的,不需要安装,并帮助您看到所有正在发生的事情在您的计算机上。在本例中,您希望找到在文件(MyProject.ispac)上有脏手指的进程,然后杀死它。
https://helpcenter.gsx.com/hc/en-us/articles/115015880627-How-to-Identify-which-Windows-Process-is-Locking-a-File-or-Folder
另一种不需要运行Process Explorer的方法是将构建从开发更改为发布(然后再返回)。
Chicken Sandwich No Pickles的评论
如何从开发转换为发布?
在工具栏中,单击您在工具栏中看到Development的位置(或右键单击解决方案资源管理器中的解决方案)
在配置管理器中,您可能会/可能不会在配置下提供列表。SSIS项目的早期版本预定义了开发/发布配置,但看起来较新的版本没有。如果没有其他选项,请通过
<New...>
创建一个从开发配置中复制值!
现在,当您调试时,ProjectFolder/bin/Release将存在,dtsdebughost.exe将锁定该文件并释放指向ProjectFolder/bin/Development/Project.ispac的指针
jhiyze9q3#
这里有一个简单的脚本,你可以在powershell中运行,以杀死所有的ssis调试进程“DtsloggHost.exe”和解锁ispac文件。
unlock_ispac.ps1
lkaoscv74#
如果有人着急,只需在cmd提示符中运行以下命令:
所有其他答案都很好地解释了这一点。这只是如果你正在寻找复制/粘贴的东西,让它结束:)