ASP.NET 應用程式必須以編譯的二進位檔部署至 Azure App Service。 Visual Studio 發佈工具會組建解決方案,然後直接部署編譯的二進位檔,而 App Service 部署引擎會先部署程式碼存放庫,然後再編譯二進位檔。
本指南為 ASP.NET 開發人員提供重要概念和指示。 如果您從未使用過 Azure App Service,請先遵循 ASP.NET 快速入門和搭配 SQL Database 的ASP.NET 教學課程。
顯示支援的 .NET Framework 執行階段版本
在 App Service 中,Windows 執行個體已安裝所有支援的 .NET Framework 版本。 若要顯示您可用的 .NET Framework 執行階段和 SDK 版本,請在瀏覽器型主控台中瀏覽至 https://<app-name>.scm.azurewebsites.net/DebugConsole
,並執行適當的命令:
針對 CLR 4 執行階段版本 (.NET Framework 4 和更新版本):
ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"
最新的 .NET Framework 版本可能無法立即供您使用。
針對 CLR 2 執行階段版本 (.NET Framework 3.5 和較舊版本):
ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"
顯示目前的 .NET Framework 執行階段版本
請在 Cloud Shell 中執行下列命令:
az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion
值為 v4.0
表示正在使用最新的 CLR 4 版本 (.NET Framework 4.x)。 值為 v2.0
表示正在使用 CLR 2 版本 (.NET Framework 3.5)。
根據預設,App Service 會使用最新支援 .NET Framework 版本來執行您的 ASP.NET 應用程式。 若要改用 .NET Framework 3.5 來執行您的應用程式,請在 Cloud Shell (v2.0 表示 CLR 2) 中執行下列命令:
az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0
在 App Service 中,您可以於應用程式的程式碼之外的位置設定應用程式設定。 然後,您可以使用標準 ASP.NET 模式在任何類別中對其進行存取:
using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}
如果您在 App Service 和 web.config 中設定具有相同名稱的應用程式設定,App Service 值會優先於 web.config 值。 本機 web.config 值可讓您在本機位置對應用程式進行偵錯,但 App Service 值可讓您使用生產設定在產品中執行應用程式。 連接字串的運作方式與其相同。 如此一來,您就可以在程式碼存放庫之外的位置保留應用程式秘密,並存取適當的值,而不需變更您的程式碼。
注意
請考慮更安全的連線選項,完全不需要連線秘密。 如需詳細資訊,請參閱從 Azure App 服務 保護 Azure 服務和資料庫的連線。
當 Visual Studio 解決方案包含多個專案時,Visual Studio 的發佈流程已經包含選取要部署的專案。 當您部署至 App Service 部署引擎時 (例如 Git,或使用已啟用組建自動化的 ZIP 部署),App Service 部署引擎會挑選其發現的第一個網站或 Web 應用程式當作 App Service應用程式。 您可以藉由指定 PROJECT
應用程式設定來指定 App Service 應該使用的專案。 例如,在 Cloud Shell 中執行下列命令:
az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"
當您的 ASP.NET 應用程式在 Visual Studio 偵錯工具中產生例外狀況時,瀏覽器會顯示詳細的例外狀況分頁,但在 App Service 該頁面會由一般錯誤訊息取代。 若要在 App Service 中顯示詳細的例外狀況分頁,請開啟 Web.config 檔案,並在 <system.web>
元素下新增 <customErrors mode="Off"/>
元素。 例如:
<system.web>
<customErrors mode="Off"/>
</system.web>
使用更新的 Web.config 重新部署應用程式。您現在應該會看到相同的詳細例外狀況頁面。
您可以使用 System.Diagnostics.Trace 在應用程式程式碼中新增診斷訊息。 例如:
Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace
若要存取 App Service 中應用程式程式碼內部產生的主控台記錄,請在 Cloud Shell 中執行下列命令,以開啟診斷記錄功能:
az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose
--level
的可能值為:Error
、Warning
、Info
和 Verbose
。 後續的每個層級都包含上一個層級。 例如:Error
只包含錯誤訊息,而 Verbose
包含所有訊息。
開啟診斷記錄後,請執行下列命令來查看記錄資料流:
az webapp log tail --resource-group <resource-group-name> --name <app-name>
如果您沒有立即看到主控台記錄,請在 30 秒後再查看。
注意
您也可以在瀏覽器中的 https://<app-name>.scm.azurewebsites.net/api/logs/docker
檢查記錄檔。
若要隨時停止記錄資料流,請輸入 Ctrl
+C
。