.Net Core 8.0 ShadowCopy 設定介紹
ASP.NET Core 部署至 IIS , *.dll 檔案會被鎖定,導致這些檔案無法順利更新,必須暫時關閉應用程式集區才能順利對網站進行部署
舊版本可以利用app_offline.htm,但 *.dll不會馬上解除鎖定
web.config 範例配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\Test.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout">
<handlerSettings>
<handlerSetting name="enableShadowCopy" value="true" />
<handlerSetting name="shadowCopyDirectory" value="./ShadowCopyDirectory/" />
<!-- Only enable handler logging if you encounter issues-->
<handlerSetting name="debugFile" value="./ShadowCopyLogs/aspnetcore-debug.log" />
<handlerSetting name="debugLevel" value="FILE,TRACE" />
</handlerSettings>
</aspNetCore>
</system.webServer>
</location>
</configuration>
參數解釋:
配置參數 | 說明 |
enableShadowCopy | 啟用陰影複製 |
shadowCopyDirectory | 複製資料夾路徑 |
debugFile | 陰影複製Log路徑 |
debugLevel | 寫入Level |
注意事項:
1. Log不要放在同WebSite資料夾內,shadowCopy也會整個複製,導致容量過大