觀點 · 資訊分享
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 正式上線,專門給依賴 Windows 特定元件的老系統:不用大改程式,就能搬到由平台代管的環境。

先用白話講:這是在解決什麼問題?
很多公司有「跑了十幾年的老網站」,用的是 .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 系統「搬家」的過渡選項。
接著讀
全部觀點 →Azure 擴展集「可用區自動平衡」正式上線:VM 擠在同一區,系統會一台一台幫你搬平Azure 虛擬機器擴展集的可用區自動平衡正式 GA:發現 VM 偏向某個可用區時,會先在 VM 最少的區建新機、確認健康後才刪掉多的那台,一次只搬一台。閱讀 →Azure 應用程式閘道的 WAF 開始檢查 IPv6 流量:雙協定網站不用再留一扇沒鎖的門Azure Application Gateway 的網頁應用程式防火牆(WAF)推出 IPv6 公開預覽,受管規則、自訂規則與診斷紀錄都能套用到 IPv6 流量。同時支援 IPv4 與 IPv6 的網站,終於可以用同一套規則保護兩邊。閱讀 →Azure 宣布 Dv3、Ev3 系列虛擬機 2029 年退休:還有三年,但預留執行個體已經買不到微軟宣布 Dv3、Dsv3、Ev3、Esv3 四個老牌虛擬機系列將在 2029 年 11 月 15 日退休,到期沒搬走的機器可能被停機甚至刪除。時間看起來很長,但一年、三年期預留執行個體早在今年 7 月就停售了。閱讀 →