問題:部署到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