問題:部署到IIS上的ASP.NET Core項目,在更新的時候會進程占用的錯誤
初步解決方案:
1,關閉應用程序池
2,關閉網站
3,更新項目
缺點:網站沒法訪問,部署項目停的時間過長
查詢官方文檔后,官方給出的方案:
如果應用正在運行,部署文件夾中的文件會被鎖定。 在部署期間,無法覆蓋已鎖定的文件。 若要在部署中解除已鎖定的文件,請使用以下方法之一 停止應用池:
-
使用 Web 部署並在項目文件中引用
Microsoft.NET.Sdk.Web
。 系統會在 Web 應用目錄的根目錄中放置一個 app_offline.htm 文件 。 該文件存在時,ASP.NET Core 模塊會在部署過程中正常關閉該應用並提供 app_offline.htm 文件 。 有關詳細信息,請參閱 ASP.NET Core 模塊配置參考。 -
在服務器上的 IIS 管理器中手動停止應用池。
-
使用 PowerShell 刪除 app_offline.html (需要使用 PowerShell 5 或更高版本):
PowerShell
$pathToApp = 'PATH_TO_APP'
# Stop the AppPool
New-Item -Path $pathToApp app_offline.htm
# Provide script commands here to deploy the app
# Restart the AppPool
Remove-Item -Path $pathToApp app_offline.htm參考:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2