
我有一個 ASP.NET Blazor 網站,使用在 Windows Server 2022/IIS 10 上執行的 .NET7。
由於我在上傳時遇到一些問題,我決定嘗試啟用卷影複製,因為這應該可以避免這個問題。
我關注了訊息這篇博文,並將我的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=".\MyWebSite.dll"
stdoutLogEnabled="false"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="enableShadowCopy"
value="true" />
<handlerSetting name="shadowCopyDirectory"
value="../_ShadowCopyDirectory/" />
</handlerSettings>
</aspNetCore>
</system.webServer>
</location>
</configuration>
但是,這會導致網站無法啟動,並返回 500。如果我註解掉或刪除該<handlerSettings>
部分,網站就可以正常運作。
查看伺服器事件日誌會顯示一個項目,其來源IIS AspNetCore Module V2
和以下描述...
無法載入配置。異常訊息:
這就是全部資訊。
在我看來,IIS 似乎無法讀取配置文件,這通常是因為 XML 無效,但我已經在驗證器中檢查了它,結果正常。
雖然我認為還沒有那麼遠,但該_ShadowCopyDirectory
資料夾存在,所以這不是問題。我已經啟用了父路徑,所以也不應該是這樣,儘管正如我所說,我懷疑它甚至沒有走那麼遠。
該網站正在使用 .NET 7,它支援此功能,因此這也不應該是問題。我檢查了 IIS 日誌,但在加載失敗時它們沒有顯示任何內容。
有人知道可能出了什麼問題,或者我可以在哪裡尋找更多資訊嗎?事件日誌沒有幫助。
答案1
我遇到了同樣的問題,透過刪除 web.config 並重新上傳來解決。簡單地覆蓋它並沒有幫助。
答案2
確保您擁有最新版本的 ANCM 和Windows 託管捆綁包安裝。僅在 .NET 7.0 RTM 之後才使用該名稱啟用該設定 - 在此之前,只有預覽名稱有效,如果不支援這些名稱,就會web.config
出現錯誤。
另請確保您的應用程式有權讀取 Web 資料夾。這很難做到,但如果您使用的自訂帳戶在 Web 根目錄中至少沒有讀取存取權限,則可能會發生這種情況。
應用程式集區和 ASP.NET 執行階段啟動錯誤通常會顯示在事件日誌中,因此請在其中尋找有關所發生錯誤的其他資訊。