我有IIS中托管的ASP.NET Core Web应用程序。我们还有使用Jenkins进行持续集成的构建服务器。 Jenkins从GitHub获得最新版本并构建&在本地文件夹中发布项目,然后执行powershell脚本将已发布的文件夹复制到Web服务器。 (它只是使用Copy-Item将文件从本地文件夹复制到网络文件夹)
powershell脚本在复制文件之前首先停止remote
IIS网站。 (我已确认远程网站在部署之前确实已停止)
然而,我们偶尔会在复制文件时遇到错误
Copy-Item:进程无法访问该文件
\\some_ip\_apps\myapp\UI\UI.dll
因为它被另一个人使用 过程
所以我已经下载handle来检查谁在网络服务器上访问此文件,我发现了dotnet.exe
如何远程停止dotnet.exe
或如何使用PowerShell远程释放句柄
答案 0 :(得分:0)
我同意其他关于使用WebDeploy简化您的方法的评论。
就PowerShell而言,Get-Process和Stop-Process以及正常的远程处理内容会让你关闭dotnet.exe。