有没有办法自动部署Blazor Server应用程序?该应用程序使与服务器端DLL的连接保持打开状态,这迫使我们登录到服务器并手动停止站点,然后再复制修订的文件。我们试图使用PowerShell来停止该站点,但它仍然使DLL处于锁定状态。只有通过IIS面板手动停止才能解锁文件。
答案 0 :(得分:1)
您必须停止AppPool,而不是站点。这是我们使用的PowerShell脚本(这些碰巧是从Octopus部署中调用的,因此它们为AppPool名称使用了替换变量($AppName
),但是您应该明白要点)。
预部署:
# Load IIS module
Import-Module WebAdministration
# Stop the app pool if not already stopped
if ((Get-WebAppPoolState($AppName)).Value -ne "Stopped") {
Write-Output "Stopping IIS app pool $AppName"
Stop-WebAppPool $AppName
}
部署后:
# Load IIS module
Import-Module WebAdministration
# Start the app pool
Start-WebAppPool $AppName
答案 1 :(得分:0)
如果将app_offline.htm放在Web根目录中,则apppool停止并且dll被解锁。