Visual Studio 如何解决“进程无法访问.ISPAC文件,因为它正被另一个进程使用”错误?

xxb16uws  于 2023-10-23  发布在  其他
关注(0)|答案(4)|浏览(281)

我使用SSDT和Visual Studio执行了一个SSIS包。当我尝试执行另一个包时,我得到一个错误,说“进程无法访问文件.ispac,因为它正在被另一个进程使用”。我试过重新启动,但这是一个痛苦的背后。如何解决这个错误?

rsl1atfo

rsl1atfo1#

在开发SSIS包时,我得到了错误 “进程无法访问文件'.ispac',因为它正在被另一个进程使用”*。
尝试关闭SSDT并再次运行它,但在编译时仍然出现相同的错误。然后,在互联网上搜索后,我们得到了解决方案:

解决方案:

1.进入任务管理器->详细信息选项卡。
1.找到进程“DtsloggHost.exe”。
1.杀死这个过程。
此过程可能有多个示例。把他们全杀了。在这样做之后,我再次尝试编译该包,并且成功了。

yzxexxkh

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的指针

jhiyze9q

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()
    }
}
lkaoscv7

lkaoscv74#

如果有人着急,只需在cmd提示符中运行以下命令:

taskkill /im DtsDebugHost.exe /f

所有其他答案都很好地解释了这一点。这只是如果你正在寻找复制/粘贴的东西,让它结束:)

相关问题