
我的主機公司剛剛升級了我的伺服器並將我的網站移了過來。我在 Visual Studio 中進行開發,並將網站發佈到本機資料夾,然後透過 FTP 上傳(如果有什麼不同,則使用 FileZilla)。
在舊伺服器上,我_App_Offline.htm
在wwwroot
每個網站的資料夾中保存了一個名為的檔案。當我上傳新版本時,我將其重命名為App_Offline.htm
,這允許 IIS 釋放文件,我上傳,然後再次重命名該文件。一切都很好。
在新伺服器上,重命名文件永遠不允許 IIS 釋放文件,因此我無法上傳變更。我嘗試在控制面板中停止該網站,但這沒有幫助。我嘗試停止應用程式集區。通常這會有所幫助,但重新啟動幾乎總是失敗。至少需要 15-20 次嘗試才能重新啟動。
有人對這裡可能出現的問題有什麼建議嗎?我意識到沒有什麼好說的,但我不確定我還能說些什麼。以下是一些可能相關的詳細資訊...
- Windows Server 2022
- IIS 10
- 伺服器正在執行 Windows FTP
- 所有網站都是 .NET,無論是 6 個還是 7 個,大部分是 Blazor,但也有一些 Razor 頁面
如果我可以提供更多信息,請告知。
謝謝
答案1
奇怪的是,雖然當 IIS 保留這些文件時您無法刪除或覆蓋這些文件,但您可以重命名它們,並且網站將像以前一樣繼續運行。
因此,解決這個問題的一種方法是重新命名關鍵檔案(根據我的經驗,通常只是主 DLL),然後複製新版本,然後使用 app_offline.htm 技巧重新啟動網站。當它重新啟動時,您可以刪除(舊的)重新命名的檔案。
在實踐中,您並不總是能夠立即刪除舊文件,但是如果您將它們重命名為前綴為zzz
,那麼它們就會隱藏在文件列表底部的視線之外,您接下來可以刪除它們你上傳的時間。
總體而言,您的時間是相同的,但您不是重命名 app_offline.htm、上傳,然後重新命名回來,而是重命名 DLL、上傳並重命名 app_offline.htm 快速連續兩次。這樣做的好處是您的停機時間要少得多,基本上,只要您重命名 app_offline.htm 並將其重新命名回來,網站就會停機。
希望有幫助。