首页
/
每日頭條
/
科技
/
asp項目部署到iis報錯未能加載
asp項目部署到iis報錯未能加載
更新时间:2024-12-29 01:06:02
前言

雖然 ASP.NET Core 應用程序是跨平台的,但我們還是經常将它部署到 Windows 的 IIS 下。

當 ASP.NET Core 站點運行時,它會鎖定正在使用的程序集,如果這時向站點目錄下複制文件進行更新,會提示文件被占用的錯誤:

asp項目部署到iis報錯未能加載(解決ASP.NETCore)1

這時,必須先關閉 IIS 站點,才能進行更新。

有什麼比較簡單的解決方案呢?

ZipDeploy

ZipDeploy 允許你壓縮發布文件夾部署到正在運行的站點。這可以防止諸如 ERROR_FILE_IN_USE 或“被外部進程鎖定”之類的錯誤。

下面就用一個示例程序來演示如何使用 ZipDeploy。

1. 安裝ZipDeploy

創建一個 Web API 程序,然後引用Nuget包ZipDeploy。

修改Startup.cs,增加如下代碼:

publicvoidConfigureServices(IServiceCollectionservices) { services.AddZipDeploy(); ... }

2.發布應用

按照正常方式,将 Web API 程序程序發布到文件夾:

asp項目部署到iis報錯未能加載(解決ASP.NETCore)2

然後,創建 IIS 站點,将發布文件夾中的文件複制到 IIS 站點部署目錄下。

這時,應該可以正常訪問站點。

3.更新應用

假設現在修改了代碼,需要更新站點。

再次将 Web API 程序程序發布到文件夾,但是這次不是直接将文件複制到 IIS 站點部署目錄下。

而是将bin\Release\net5.0\publish下的所有文件壓縮成publish.zip文件,再将 zip 文件複制到 IIS 站點部署目錄下。

ZipDeploy 會将 publish.zip 文件解壓更新 IIS 站點,更新完成後将publish.zip改名為deployed.zip。

可以看到,更新成功,并沒有任何錯誤:

asp項目部署到iis報錯未能加載(解決ASP.NETCore)3

結論

用了 ZipDeploy,再也不用擔心 ASP.NET Core 應用程序部署到 IIS,更新項目時出現"文件夾正在使用"錯誤了!

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
Copyright 2023-2024 - www.tftnews.com All Rights Reserved