簡體   English   中英

網。 6 on Docker 容器和應用程序池回收

[英]NET. 6 on Docker Container and Application Pool Recycle

我正在使用 Microsoft Blazor 在 .NET6 上開發一個應用程序。我已經將該應用程序容器化,以便能夠更靈活地部署並避免 Azure Web 應用程序問題。

Azure Web Apps 是一項 Azure 服務,它可以托管 web 應用程序,例如 .NET 6 應用程序,但是在該服務上運行時,可能會發生幾件事:

  1. 服務器交換,服務正在改變底層基礎設施,這可以通過使用來自 Azure 門戶的 ARR AFFINITY 開關來避免
  2. Server Upgrades, framework or storage upgrades 導致應用隨時重啟
  3. 具有定期回收間隔的應用程序池回收

所以當我們有一個有狀態機制的應用程序,比如線程池,應用程序重啟后,所有的線程都會被清除。

以下是隨機重啟的示例: 在此處輸入圖像描述

我發現克服這些問題的一種很酷的方法是使用 Docker 容器,它們可以實現 .NET 6。

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base

我已經對此進行了測試,我的應用程序運行沒有任何問題或重啟了一周,而在 Azure 中,我一周內至少重啟了兩次。

我現在更關心的是應用程序池回收,我過去熟悉 IIS 但現在我確定這是如何在 docker 容器中處理的,如果設置后面有 IIS,如果有,我如何檢查 ' DisableOverlappedRecycle '、' DisableRecyclingConfigChange ' 和 ' Idle Time-out ' 選項。

有任何想法嗎?

查看由 Dockerfile 構建的正在運行的 Docker 容器以了解部署,找到項目文件以及 Web.config 文件。

這意味着 IIS 正在運行,它可以接受多個設置,如 DisableOverlappedRecycle'、'DisableRecyclingConfigChange' 和 'Idle Time-out' 選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM