觀點 · 資訊分享

Azure App Service「Managed Instance」正式上線:老舊 .NET Framework 網站不改程式也能搬上雲

微軟讓 Azure App Service 的 Managed Instance 正式上線,專門給依賴 Windows 元件的老系統:保留 COM、Registry 與 MSI 安裝檔,同時由平台代管修補與擴展,附 99.95% 的服務等級協議。

發布
2026-08-19
篇幅
約 5 分鐘 · 2,110 字
結構
8 節 + 3 題常見問題
標籤
#Azure#App Service#Managed Instance#.NET Framework#系統遷移
Azure App Service「Managed Instance」正式上線:老舊 .NET Framework 網站不改程式也能搬上雲

一句話看懂:微軟讓 Azure App Service 的 Managed Instance 正式上線,專門給依賴 Windows 特定元件的老系統:不用大改程式,就能搬到由平台代管的環境。

Managed Instance 正式上線資訊圖卡:老舊 Windows 網站可保留 COM、Registry 與 MSI,搬上雲

先用白話講:這是在解決什麼問題?

很多公司有「跑了十幾年的老網站」,用的是 .NET Framework,而且綁了不少 Windows 專屬的東西:COM 元件、Registry 設定、安裝檔(MSI)、Windows 服務。

這種系統要搬上雲,常見兩個選擇:

  • 租一台雲端虛擬機:什麼都能裝,但修補、備份、擴充都要自己管,像是「租一間毛胚屋自己裝潢」
  • 用 App Service(PaaS):平台幫你顧好,但不能動作業系統,舊系統裝不進去,像是「住飯店,不能自己拆牆」

Managed Instance 是中間的選項:平台照樣代管,但允許你用腳本客製一部分 Windows 環境。

發生什麼事

微軟在 8 月 18 日宣布 Managed Instance on Azure App Service 正式上線(GA)。官方的重點:

  • 協助企業在最少設定、不改程式碼的情況下,把網站遷移到 App Service
  • 保留與 Windows 專屬元件的相容性,也能支援傳統的 .NET Framework 應用程式
  • 內建 App Service 的自動調整、韌性、可用區域備援與 Azure 服務整合
  • 管理能力:透過 Azure Bastion 的 RDP 存取、自訂腳本、Registry 轉接器、儲存體掛載與身分管理
  • 企業級能力:99.95% 服務等級協議、Premium v4 效能、Azure Policy、Microsoft Defender for Cloud,並支援 Bicep、Terraform 與 ARM 範本部署
  • 建議先用 Azure Migrate 評估哪些工作負載適合

能客製什麼?

依官方文件,主要有這些:

類別 能力
自訂元件 用 PowerShell 安裝腳本安裝 COM、Registry、IIS 設定、MSI、Windows 服務、GAC 元件、MSMQ 等
Registry 轉接器 Registry 的機密值可放在 Azure Key Vault
儲存 掛載 Azure Files 或 UNC 路徑,也可用磁碟機代號;本機暫存只有 2 GB 且重啟即清空
網路 可選擇方案層級的虛擬網路整合、私人端點、NSG
預裝執行環境 .NET Framework 3.5、4.8 與 .NET 8

限制要先看清楚

限制 說明
平台 只支援 Windows,不支援 Linux 與容器
方案 只有 Pv4 與 Pmv4
工作負載 只有網站,不支援 WebJobs、TCP、NetPipes
驗證 只支援 Entra ID 與受控識別,不支援網域加入、NTLM、Kerberos
區域 僅限部分區域,文件寫的是會陸續增加(文件目前列出的區域含東亞)

給開發者的技術細節

  • 持久設定要寫腳本:把 PowerShell 腳本壓縮後放到 Azure Storage,用受控識別存取,啟動時自動執行。RDP 進去手動改的設定,在重啟或平台維護後會消失
  • 診斷:記錄是方案層級,不是應用程式層級;可看 IIS Manager 與事件檢視器
  • 評估工具:VS Code 的 GitHub Copilot modernization 可把評估目標設為 AppServiceManagedInstance.Windows,取得這個平台專屬的建議與部署
  • 一般常用的 CI/CD(GitHub Actions、Azure DevOps、zip deploy)都支援

我的看法

接案時,最常遇到的難題是客戶的老 .NET Framework 系統:沒有原始碼文件、沒人敢動、依賴一堆舊元件,但又需要搬離快要到期的主機。重寫成本通常客戶負擔不起,所以這種「先搬家、再慢慢改」的選項很有價值。

不過要看清楚它是「過渡方案」:方案限制在 Pv4 與 Pmv4、只能放網站、驗證不支援網域與 Kerberos,如果舊系統綁了內部網域驗證,可能就不適用。我的做法是先盤點這些依賴,如果都能相容,再試跑一個測試環境,並把安裝腳本、設定寫進版本控制,因為手動改的東西重啟就沒了。費用方面,官方公告沒有列價格,評估時請看 Azure 官方價格頁。

名詞小辭典

  • PaaS:平台即服務,雲端廠商代管作業系統與基礎設施,你只管應用程式。
  • COM 元件:Windows 上很老牌的軟體元件格式,舊系統常常依賴它。
  • Registry:Windows 存放系統與軟體設定的資料庫,舊系統常把設定寫在這裡。
  • MSI:Windows 的安裝檔格式。

資料來源

常見問題

Managed Instance 跟一般 App Service 有什麼不同?
一般 App Service 偏向雲原生、不能動作業系統;Managed Instance 則是以方案為單位,允許你用 PowerShell 腳本安裝 COM 元件、設定 Registry 與 IIS、安裝 MSI 等,讓依賴 Windows 環境的舊系統也能放上去,同時仍由平台代管修補與擴展。
我可以直接遠端桌面進去改設定嗎?
可以用 Azure Bastion 的即時 RDP 登入,但官方說明 RDP 只用於診斷,重啟或平台維護後,手動做的變更會消失。需要持久的設定,要寫成安裝腳本在啟動時執行。
一定要選這個嗎?什麼時候不適合?
如果是新開發、使用 Python、Node.js、Java、PHP,或需要 Linux 與容器,就該用一般 App Service。需要上百個應用程式的大規模完全隔離,則是 App Service Environment 的場景。Managed Instance 比較像是舊 Windows 系統「搬家」的過渡選項。
LINE