將您的 .NET Web 應用程式或服務移轉至 Azure App Service
App Service 是完全受控的計算平台服務,其已針對裝載可調整的網站與 Web 應用程式進行最佳化。 此文章提供以下資訊:如何將現有的應用程式隨即轉移至 Azure App Service、應該考量的修改,以及移到雲端的其他資源。 大部分 ASP.NET 網站 (Webforms、MVC) 和服務 (Web API、WCF) 都可以在沒有變更的情況下直接移至 Azure App Service。 有些可能需要進行次要變更,有些則可能需要重構。
準備開始了嗎? 將 ASP.NET + SQL 應用程式發佈至 Azure App Service。
考量
內部部署資源 (包括 SQL Server)
確認內部部署資源的存取權,因為這些資源可能需要移轉或變更。 以下是緩解內部部署資源存取的選項:
- 使用 Azure 虛擬網絡,建立連接 App Service 與內部部署資源的 VPN。
- 使用 Azure 轉送,向雲端安全地公開內部部署服務而無需進行防火牆變更。
- 將 SQL 資料庫之類的相依性移轉至 Azure。
- 在雲端中使用平台即服務供應項目來減少相依性。 例如,不要連線到內部部署郵件伺服器,而是考慮使用 SendGrid。
連接埠繫結
Azure App Service 支援 HTTP 使用連接埠 80,以及 HTTPS 流量使用連接埠 443。
若是 WCF,則支援下列繫結:
繫結 | 備註 |
---|---|
BasicHttp |
|
WSHttp |
|
WSDualHttpBinding |
必須啟用 Web 通訊端支援。 |
NetHttpBinding |
雙工合約必須啟用 Web 通訊端支援。 |
NetHttpsBinding |
雙工合約必須啟用 Web 通訊端支援。 |
BasicHttpContextBinding |
|
WebHttpBinding |
|
WSHttpContextBinding |
驗證
Azure App Service 預設為支援匿名驗證,並在需要時支援表單驗證。 只有在整合 Azure Active Directory 和 ADFS 時可以使用 Windows 驗證。 進一步了解如何整合您的內部部署目錄與 Azure Active Directory。
GAC (全域組件快取) 中的組件
不支援此動作。 建議將必要組件複製到應用程式的 [\bin] 資料夾中。 無法使用安裝在伺服器上的自訂 .msi 檔案 (例如 PDF 產生器)。
IIS 設定
傳統上必須在應用程式中透過 applicationHost.config 設定的所有項目,現在都可以透過 Azure 入口網站設定。 這適用於 AppPool 位元、啟用/停用 WebSocket、受控管線版本、.NET Framework 版本 (2.0/4.0) 等。 若要修改應用程式設定,請導覽至 Azure 入口網站,開啟 Web 應用程式的刀鋒視窗,然後選取 [應用程式設定] 索引標籤。
IIS5 相容性模式
不支援 IIS5 相容性模式。 在 Azure App Service 中,每個 Web 應用程式和其下的所有應用程式都會在相同的背景工作處理序中執行,且具有特定的一組應用程式集區。
IIS7+ 結構描述合規性
某些元素和屬性未在 Azure App Service IIS 結構描述中定義。 如果您遇到問題,請考慮使用 XDT 轉換。
每個 Web 應用程式使用單一應用程式集區
在 Azure App Service 中,每個 Web 應用程式和其下的所有應用程式都會在相同的應用程式集區中執行。 考慮建立具有通用設定的單一應用程式集區,或是為每個應用程式建立個別的 Web 應用程式。
COM 和 COM+ 元件
Azure App Service 不允許在平台上註冊 COM 元件。 如果您的應用程式使用任何 COM 元件,則必須以受控程式碼重新撰寫這些元件,並搭配網站或應用程式進行部署。
實體目錄
Azure App Service 不允許實體磁碟機存取。 您可能需要使用 Azure 檔案儲存體來透過 SMB 存取檔案。 Azure Blob 儲存體可以儲存透過 HTTPS 存取的檔案。
ISAPI 篩選器
Azure App Service 可以支援使用 ISAPI 篩選器,但 ISAPI DLL 必須與您的網站一起部署並透過 web.config 註冊。
HTTPS 繫結和 SSL
HTTPS 繫結,以及與您網站相關聯的 SSL 憑證都不會移轉。 但在網站移轉完成後,可以手動上傳 SSL 憑證。
SharePoint 和 FrontPage
不支援 SharePoint 和 FrontPage Server Extensions (FPSE)。
網站大小
免費網站內容大小上限為 1 GB。 如果您的網站大於 1 GB,則必須升級至付費 SKU。 請參閱 App Service 定價收費。
資料庫大小
若為 SQL Server 資料庫,請查閱目前的 SQL Database 定價。
Azure Active Directory (AAD) 整合
AAD 不適用於免費應用程式。 若要使用 AAD,您必須升級應用程式 SKU。 請參閱 App Service 定價收費。
監視和診斷
您目前用於監視和診斷的內部部署解決方案可能無法在雲端運作。 不過,Azure 提供記錄、監視和診斷用的工具,讓您可以識別 Web 應用程式的問題並進行偵錯。 您可以在 Web 應用程式的設定中輕鬆啟用診斷功能,並檢視 Azure Application Insights 中記載的記錄。 進一步了解如何啟用 Web 應用程式的診斷記錄。
連接字串和應用程式設定
請考慮使用 Azure KeyVault,這個服務可以安全地儲存應用程式所使用的敏感性資訊。 或者,您也可以將此資料儲存為 App Service 設定。
DNS
您可能需要根據應用程式的需求來更新 DNS 設定。 您可以在 App Service 的自訂網域設定中設定這些 DNS 設定。
使用 Windows 容器的 Azure App Service
如果您的應用程式無法直接移轉至 App Service,請考慮使用 Windows 容器的 App Service,它可以使用 GAC、COM 元件、MSI 並完整存取 .NET FX API、DirectX 等等。