Asp.net

更新在 IIS 上執行的實時網站的最佳實踐

  • August 10, 2020

目前,當我們想要將更新推廣到我們的實時網站時,我們會執行一個 .bat 文件,將整個文件夾結構從我們的開發環境複製到實時伺服器。這會將虛擬目錄指向的文件夾替換為新更新的新文件夾。這是在伺服器和 IIS 處於活動狀態時完成的,顯然是在使用者訪問網站時完成的。

我們偶爾會收到由於文件或文件夾在更新後立即“鎖定”而導致的錯誤,通常唯一的選擇是停止 IIS 或重新啟動伺服器。我們猜測這種“鎖定”是由 .bat 文件在 IIS 使用時試圖覆蓋文件引起的。

有沒有其他人經歷過這種情況和/或您會推薦什麼作為以最少的停機時間(即幾乎沒有停機時間)即時更新實時網站的最佳方式。

謝謝。

轉發為答案而不是評論,在那裡度過了一個愚蠢的時刻!

如果您不能停機,那麼最好的辦法是執行另一個伺服器副本,以便在您想要更新主伺服器時將使用者轉移到該副本。然後在更新後將使用者轉移回主節點。

您可以使用位於另一台伺服器上的狀態伺服器來確保在它們從一個伺服器切換到另一個伺服器時保持任何會話狀態。

我們目前正在試驗微軟的 Web Farm Framework,它似乎在這種事情上做得很好。

我們的設置包括一個前端伺服器、一個主 Web 伺服器和一個輔助 Web 伺服器,以及一個單獨的狀態伺服器。WFF 在兩台機器上保持 Web 應用程序的副本同步,並且狀態伺服器確保如果使用者在請求之間切換伺服器(或他們目前的伺服器離線),他們不應該注意到更改。

要升級主伺服器,請將其從負載平衡中取出,這會將其所有請求轉移到輔助伺服器。進行升級,將其放回輪換狀態,然後在第二台伺服器上重複該過程。

引用自:https://stackoverflow.com/questions/6071228