解決ASP.NET Core部署到IIS,更新項目"另一個程序正在使用此文件,進程無法訪問"


 

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM