Mengonfigurasi aplikasi ASP.NET untuk Azure App Service

Catatan

Untuk ASP.NET Core, lihat Mengonfigurasi aplikasi ASP.NET Core untuk Azure App Service. Jika aplikasi ASP.NET Anda berjalan di kontainer Windows atau Linux kustom, lihat Mengonfigurasi kontainer kustom untuk Azure App Service.

Aplikasi ASP.NET harus disebarkan ke Azure App Service sebagai biner yang dikompilasi. Alat penerbitan Visual Studio membangun solusi dan kemudian menyebarkan biner yang dikompilasi secara langsung, sedangkan mesin penyebaran App Service menerapkan repositori kode terlebih dahulu, kemudian mengompilasi biner.

Panduan ini menyediakan konsep dan pertunjuk utama untuk pengembang ASP.NET. Jika Anda belum pernah menggunakan Azure App Service, ikuti mulai cepat ASP.NET dan ASP.NET dengan tutorial SQL Database terlebih dahulu.

Memperlihatkan versi runtime .NET Framework yang didukung

Di Azure App Service, instans Windows sudah memasang semua versi .NET Framework yang didukung. Untuk menampilkan runtime .NET Frameworke dan versi SDK yang tersedia untuk Anda, navigasikan ke https://<app-name>.scm.azurewebsites.net/DebugConsole dan jalankan perintah berikut di konsol berbasis browser:

Untuk versi runtime CLR 4 (.NET Framework 4 ke atas):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework"

Versi .NET Framework terbaru mungkin tidak segera tersedia.

Untuk versi runtime CLR 2 (.NET Framework 3.5 ke atas):

ls "D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework"

Tampilkan versi runtime .NET Framework saat ini

Jalankan perintah berikut di Cloud Shell:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query netFrameworkVersion

Nilai v4.0 menunjukkan bahwa versi CLR 4 terbaru (.NET Framework 4.x) telah digunakan. Nilai v2.0 menunjukkan bahwa versi CLR 2 (.NET Framework 3.5) telah digunakan.

Tetapkan versi runtime .NET Framework

Secara default, App Service menggunakan versi .NET Framework terbaru yang didukung untuk menjalankan aplikasi ASP.NET Anda. Untuk menjalankan aplikasi Anda menggunakan .NET Framework 3.5 sebagai gantinya, jalankan perintah berikut di Cloud Shell (v2.0 menandakan CLR 2):

az webapp config set --resource-group <resource-group-name> --name <app-name> --net-framework-version v2.0

Mengakses variabel lingkungan

Di App Service, Anda dapat mengatur pengaturan aplikasi dan string koneksi di luar kode aplikasi. Kemudian, Anda dapat mengaksesnya di kelas mana pun menggunakan pola ASP.NET standar:

using System.Configuration;
...
// Get an app setting
ConfigurationManager.AppSettings["MySetting"];
// Get a connection string
ConfigurationManager.ConnectionStrings["MyConnection"];
}

Jika Anda mengonfigurasi pengaturan aplikasi dengan nama yang sama di App Service dan web.config, nilai App Service lebih diutamakan daripada nilai web.config. Nilai web.config lokal memungkinkan Anda men-debug aplikasi secara lokal, tetapi nilai Azure App Service memungkinkan Anda menjalankan aplikasi dalam produk dengan pengaturan produksi. String koneksi bekerja dengan cara yang sama. Dengan demikian, Anda dapat menyimpan rahasia aplikasi di luar repositori kode Anda dan mengakses nilai yang sesuai tanpa mengubah kode Anda.

Menyebarkan solusi multi-proyek

Saat solusi Visual Studio menyertakan beberapa proyek, proses penerbitan Visual Studio sudah menyertakan pemilihan proyek untuk disebarkan. Saat Anda menyebarkan ke mesin penyebaran App Service, seperti Git, atau dengan penyebaran ZIP dengan otomatisasi build diaktifkan, mesin penyebaran App Service memilih Situs Web atau Proyek Aplikasi Web pertama yang ditemukannya sebagai aplikasi App Service. Anda dapat menentukan proyek mana yang harus digunakan Azure App Service dengan menentukan PROJECT pengaturan aplikasi. Misalnya, jalankan yang berikut ini di Cloud Shell:

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings PROJECT="<project-name>/<project-name>.csproj"

Dapatkan halaman pengecualian terperinci

Saat aplikasi ASP.NET Anda menghasilkan pengecualian dalam debugger Visual Studio, browser menampilkan halaman pengecualian terperinci, tetapi di Azure App Service, halaman tersebut digantikan oleh kesalahan umum. Untuk menampilkan halaman pengecualian terperinci di App Service, buka file Web.config dan tambahkan elemen <customErrors mode="Off"/> di bawah elemen <system.web>. Contohnya:

<system.web>
    <customErrors mode="Off"/>
</system.web>

Sebarkan ulang aplikasi Anda dengan aplikasi Web.config. Sekarang, Anda akan melihat halaman pengecualian terperinci yang sama.

Mengakses log diagnostik

Anda dapat menambahkan pesan diagnostik dalam kode aplikasi Anda menggunakan System.Diagnostics.Trace. Contohnya:

Trace.TraceError("Record not found!"); // Error trace
Trace.TraceWarning("Possible data loss"); // Warning trace
Trace.TraceInformation("GET /Home/Index"); // Information trace

Untuk mengakses log konsol yang dihasilkan dari dalam kode aplikasi Anda di App Service, aktifkan pembuatan log diagnostik dengan menjalankan perintah berikut di Cloud Shell:

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

Nilai yang mungkin untuk --level adalah: Error, Warning, Info, dan Verbose. Setiap level berikutnya mencakup level sebelumnya. Misalnya: Error hanya menyertakan pesan kesalahan, dan Verbose menyertakan semua pesan.

Setelah pembuatan log diagnostik diaktifkan, jalankan perintah berikut untuk melihat aliran log:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

Jika Anda tidak segera melihat log konsol, periksa lagi dalam 30 detik.

Catatan

Anda juga dapat memeriksa file log dari browser di https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Untuk menghentikan streaming log kapan saja, ketikkan Ctrl+C.

Sumber daya lainnya