Menyebarkan aplikasi ASP.NET Core ke Azure App Service

Azure App Service adalah layanan platform komputasi cloud Microsoft untuk menghosting aplikasi web, termasuk ASP.NET Core.

Pola aplikasi web yang andal

Lihat video dan artikel Reliable Web App Pattern for.NETYouTube untuk panduan tentang membuat aplikasi modern, andal, berkinerja, dapat diuji, hemat biaya, dan dapat diskalakan ASP.NET Core, baik dari awal atau refaktor aplikasi yang ada.

Sumber daya yang berguna

Dokumentasi App Service adalah rumah bagi dokumentasi, tutorial, sampel, panduan cara kerja, dan sumber daya Azure Apps lainnya. Dua tutorial penting yang berkaitan dengan hosting aplikasi ASP.NET Core adalah:

Membuat aplikasi web ASP.NET Core di Azure
Gunakan Visual Studio untuk membuat dan menyebarkan aplikasi web ASP.NET Core ke Azure App Service di Windows.

Membuat aplikasi ASP.NET Core di App Service di Linux
Gunakan baris perintah untuk membuat dan menyebarkan aplikasi web ASP.NET Core ke Azure App Service di Linux.

Lihat ASP.NET Core di Dasbor App Service untuk versi ASP.NET Core yang tersedia di layanan Azure App.

Berlangganan ke repositori Pengumuman App Service dan pantau masalahnya. Tim App Service secara teratur memposting pengumuman dan skenario yang tiba di App Service.

Artikel berikut ini tersedia di dokumentasi ASP.NET Core:

Menerbitkan aplikasi ASP.NET Core ke Azure dengan Visual Studio
Pelajari cara menerbitkan aplikasi ASP.NET Core ke Azure App Service menggunakan Visual Studio.

Membuat alur pertama Anda
Siapkan build CI untuk aplikasi ASP.NET Core, lalu buat rilis penyebaran berkelanjutan ke Azure App Service.

Sandbox Aplikasi Web Azure
Temukan batasan eksekusi runtime Azure App Service yang diberlakukan oleh platform Azure Apps.

Memecahkan masalah dan mendebug proyek ASP.NET Core
Memahami dan memecahkan masalah peringatan dan kesalahan dengan proyek ASP.NET Core.

Konfigurasi aplikasi

Platform

Arsitektur platform (x86/x64) aplikasi App Services diatur dalam pengaturan aplikasi di Portal Microsoft Azure untuk aplikasi yang dihosting di komputasi seri A (Dasar) atau tingkat hosting yang lebih tinggi. Konfirmasikan bahwa pengaturan penerbitan aplikasi (misalnya, di profil terbitkan (.pubxml) Visual Studio) cocok dengan pengaturan dalam konfigurasi layanan aplikasi di Portal Microsoft Azure.

Runtime untuk aplikasi 64-bit (x64) dan 32-bit (x86) tersedia di Azure App Service. SDK .NET Core yang tersedia di App Service adalah 32-bit, tetapi Anda dapat menyebarkan aplikasi 64-bit yang dibuat secara lokal menggunakan konsol Kudu atau proses penerbitan di Visual Studio. Untuk informasi lebih lanjut, lihat bagian Menerbitkan dan menyebarkan aplikasi.

Untuk aplikasi dengan dependensi native, runtime untuk aplikasi 32-bit (x86) tersedia di Azure App Service. SDK .NET Core yang tersedia di App Service adalah 32-bit.

Untuk informasi lebih lanjut tentang komponen kerangka kerja .NET Core dan metode distribusi, seperti informasi tentang runtime .NET Core dan SDK .NET Core, lihat Tentang Komposisi .NET Core:.

Paket

Sertakan paket NuGet berikut guna menyediakan fitur pengelogan otomatis untuk aplikasi yang disebarkan ke Azure App Service:

Paket sebelumnya harus direferensikan secara eksplisit dalam file proyek aplikasi.

Mengganti konfigurasi aplikasi menggunakan Portal Microsoft Azure

Pengaturan aplikasi di Portal Microsoft Azure mengizinkan Anda untuk mengatur variabel lingkungan aplikasi. Variabel lingkungan dapat digunakan oleh Penyedia Konfigurasi Variabel Lingkungan.

Saat pengaturan aplikasi dibuat atau diubah di Portal Microsoft Azure dan tombol Simpan dipilih, Aplikasi Azure dimulai ulang. Variabel lingkungan tersedia untuk aplikasi setelah layanan dimulai ulang.

Saat aplikasi menggunakan Generic Host, variabel lingkungan dimuat ke dalam konfigurasi aplikasi saat CreateDefaultBuilder dipanggil untuk membangun host. Untuk informasi lebih lanjut, lihat .NET Generic Host di ASP.NET Core dan Penyedia Konfigurasi Variabel Lingkungan.

Pengaturan aplikasi di Portal Microsoft Azure mengizinkan Anda untuk mengatur variabel lingkungan aplikasi. Variabel lingkungan dapat digunakan oleh Penyedia Konfigurasi Variabel Lingkungan.

Saat pengaturan aplikasi dibuat atau diubah di Portal Microsoft Azure dan tombol Simpan dipilih, Aplikasi Azure dimulai ulang. Variabel lingkungan tersedia untuk aplikasi setelah layanan dimulai ulang.

Saat aplikasi menggunakan Web Host, variabel lingkungan dimuat ke dalam konfigurasi aplikasi saat CreateDefaultBuilder dipanggil untuk membangun host. Untuk informasi lebih lanjut, lihat ASP.NET Core Web Host dan Penyedia Konfigurasi Variabel Lingkungan.

Skenario server proksi dan penyeimbang beban

IIS Integration Middleware, yang mengonfigurasi Forwarded Headers Middleware saat menghosting out-of-process, dan Modul ASP.NET Core dikonfigurasi untuk meneruskan skema (HTTP/HTTPS) dan alamat IP jarak jauh tempat permintaan berasal. Konfigurasi tambahan mungkin diperlukan untuk aplikasi yang dihosting di belakang server proksi tambahan dan penyeimbang beban. Untuk informasi selengkapnya, lihat Mengonfigurasi ASP.NET Core untuk bekerja dengan server proxy dan memuat penyeimbang.

Pemantauan dan pengelogan

Aplikasi ASP.NET Core yang disebarkan ke App Service secara otomatis menerima ekstensi App Service, Integrasi Pengelogan ASP.NET Core. Ekstensi memungkinkan integrasi pengelogan untuk aplikasi ASP.NET Core di Azure App Service.

Aplikasi ASP.NET Core yang disebarkan ke App Service secara otomatis menerima ekstensi App Service, Ekstensi Pengelogan ASP.NET Core. Ekstensi memungkinkan integrasi pengelogan untuk aplikasi ASP.NET Core di Azure App Service.

Untuk informasi pemantauan, pengelogan, dan pemecahan masalah, lihat artikel berikut ini:

Memantau aplikasi di Azure App Service
Pelajari cara meninjau kuota serta metrik aplikasi dan paket App Service.

Mengaktifkan pembuatan logging diagnostik untuk aplikasi di Azure App Service
Temukan cara mengaktifkan dan mengakses log diagnostik untuk kode status HTTP, permintaan yang gagal, dan aktivitas server web.

Menangani kesalahan di ASP.NET Core
Pahami pendekatan umum untuk menangani kesalahan di aplikasi ASP.NET Core.

Memecahkan masalah ASP.NET Core pada Azure App Service dan IIS
Pelajari cara mendiagnosis masalah dengan penyebaran Azure App Service dengan aplikasi ASP.NET Core.

Pemecahan masalah kesalahan umum untuk Azure App Service dan IIS dengan ASP.NET Core
Lihat kesalahan konfigurasi penyebaran umum untuk aplikasi yang dihosting oleh Azure App Service/IIS dengan saran pemecahan masalah.

Cincin kunci Perlindungan Data dan slot penyebaran

Kunci Perlindungan Data disimpan ke folder %HOME%\ASP.NET\DataProtection-Keys. Folder ini didukung oleh penyimpanan jaringan dan disinkronkan di semua mesin yang menghosting aplikasi. Kunci tidak dilindungi saat tidak aktif. Folder ini memasok cincin kunci ke semua instans aplikasi dalam satu slot penyebaran. Pisahkan slot penyebaran, seperti Pentahapan dan Produksi, jangan bagikan cincin kunci.

Saat bertukar di antara slot penerapan, sistem apa pun yang menggunakan perlindungan data tidak akan dapat mendekripsi data yang disimpan menggunakan cincin kunci di dalam slot sebelumnya. Middleware Cookie ASP.NET menggunakan perlindungan data untuk melindungi cookie-nya. Hal ini menyebabkan pengguna keluar dari aplikasi yang menggunakan standar Middleware Cookie ASP.NET. Untuk solusi cincin kunci slot-independen, gunakan penyedia cincin kunci eksternal, seperti:

  • Azure Blob Storage
  • Azure Key Vault
  • Penyimpanan SQL
  • Cache Redis

Untuk informasi lebih lanjut, lihat Penyedia penyimpanan utama di ASP.NET Core.

Menyebarkan aplikasi ASP.NET Core yang menggunakan pratinjau .NET Core

Untuk menyebarkan aplikasi yang menggunakan rilis pratinjau .NET Core, lihat sumber daya berikut. Pendekatan ini juga digunakan saat runtime tersedia tetapi SDK belum diinstal di Azure App Service.

Lihat ASP.NET Core di Dasbor App Service untuk versi ASP.NET Core yang tersedia di layanan Azure App.

Lihat Memilih versi .NET Core yang akan digunakan untuk informasi tentang memilih versi SDK .NET untuk penyebaran mandiri.

Menentukan Versi SDK .NET Core menggunakan Azure Pipelines

Gunakan skenario CI/CD Azure App Service untuk menyiapkan pembangunan integrasi berkelanjutan dengan Azure DevOps. Setelah build Azure DevOps dibuat, konfigurasikan build secara opsional untuk menggunakan versi SDK tertentu.

Menentukan versi SDK .NET Core

Saat menggunakan pusat penyebaran App Service untuk membuat build Azure DevOps, alur build default menyertakan langkah-langkah untuk Restore, Build, Test, dan Publish. Untuk menentukan versi SDK, pilih tombol Tambah (+) di daftar tugas Agen untuk menambahkan langkah baru. Cari SDK .NET Core di bilah pencarian.

Add the .NET Core SDK step

Pindahkan langkah ke posisi pertama dalam build sehingga langkah-langkah berikutnya menggunakan versi SDK .NET Core yang ditentukan. Tentukan versi SDK .NET Core. Dalam contoh ini, SDK diatur ke 3.0.100.

Completed SDK step

Untuk menerbitkan penyebaran mandiri (SCD), konfigurasikan SCD pada langkah Publish dan berikan Pengidentifikasi Runtime (RID).

Self-contained publish

Menyebarkan aplikasi pratinjau mandiri

Penyebaran mandiri (SCD) yang menargetkan runtime pratinjau membawa runtime pratinjau dalam penyebaran.

Saat menyebarkan aplikasi mandiri:

Ikuti panduan di bagian Menyebarkan aplikasi mandiri.

Menggunakan Docker dengan Aplikasi Web untuk kontainer

Docker Hub di https://hub.docker.com/_/microsoft-dotnet berisi gambar Docker pratinjau terbaru. Gambar dapat digunakan sebagai gambar dasar. Gunakan gambar dan sebarkan ke Aplikasi Web untuk Kontainer secara normal.

Menginstal ekstensi situs pratinjau

Jika terjadi masalah saat menggunakan ekstensi situs pratinjau, buka masalah dotnet/AspNetCore.

  1. Dari Portal Microsoft Azure, navigasikan ke App Service.
  2. Pilih aplikasi web.
  3. Ketik "ex" di kotak pencarian untuk memfilter "Ekstensi" atau gulir ke bawah daftar alat manajemen.
  4. Pilih Ekstensi.
  5. Pilih Tambahkan.
  6. Pilih ekstensi ASP.NET Core {XY} ({x64|x86}) Runtime dari daftar, di mana {X.Y} adalah versi pratinjau ASP.NET Core dan {x64|x86} menentukan platform.
  7. Pilih Oke untuk menerima persyaratan hukum.
  8. Pilih Oke untuk menginstal ekstensi.

Ketika operasi selesai, pratinjau .NET Core terbaru diinstal. Verifikasi instalasi:

  1. Pilih Alat Tingkat Lanjut.

  2. Pilih Buka di Alat Tingkat Lanjut.

  3. Pilih item menu Konsol debug>PowerShell.

  4. Pada perintah PowerShell, jalankan perintah berikut. Ganti versi runtime ASP.NET Core untuk {X.Y} dan platform untuk {PLATFORM} dalam perintah:

    Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.{PLATFORM}\
    

    Perintah mengembalikan True saat runtime pratinjau x64 diinstal.

Catatan

Arsitektur platform (x86/x64) aplikasi App Services diatur dalam pengaturan aplikasi di Portal Microsoft Azure untuk aplikasi yang dihosting di komputasi seri A (Dasar) atau tingkat hosting yang lebih tinggi. Konfirmasikan bahwa pengaturan penerbitan aplikasi (misalnya, di profil terbitkan (.pubxml) Visual Studio) cocok dengan pengaturan dalam konfigurasi layanan aplikasi di portal Microsoft Azure.

Jika aplikasi berjalan dalam mode dalam proses dan arsitektur platform dikonfigurasi untuk 64-bit (x64), Modul ASP.NET Core menggunakan runtime pratinjau 64-bit, jika ada. Instal ekstensi ASP.NET Core {XY} (x64) Runtime menggunakan Portal Microsoft Azure.

Setelah menginstal runtime pratinjau x64, jalankan perintah berikut di jendela perintah Azure Kudu PowerShell untuk memverifikasi penginstalan. Gantikan versi runtime ASP.NET Core untuk {X.Y} dalam perintah berikut:

Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.{X.Y}.x64\

Perintah mengembalikan True saat runtime pratinjau x64 diinstal.

Catatan

Ekstensi ASP.NET Core mengaktifkan fungsionalitas tambahan untuk ASP.NET Core di Azure App Services, seperti mengaktifkan pengelogan Azure. Ekstensi diinstal secara otomatis saat menyebarkan dari Visual Studio. Jika ekstensi tidak diinstal, instal ekstensi untuk aplikasi.

Gunakan ekstensi situs pratinjau dengan template ARM

Jika template ARM digunakan untuk membuat dan menyebarkan aplikasi, jenis sumber daya Microsoft.Web/sites/siteextensions dapat digunakan untuk menambahkan ekstensi situs ke aplikasi web. Dalam contoh berikut, ekstensi situs Runtime ASP.NET Core 5.0 (x64) (AspNetCoreRuntime.5.0.x64) ditambahkan ke aplikasi:

{
    ...
    "parameters": {
        "site_name": {
            "defaultValue": "{SITE NAME}",
            "type": "String"
        },
        ...
    },       
    ...
    "resources": [
        ...
        {
            "type": "Microsoft.Web/sites/siteextensions",
            "apiVersion": "2018-11-01",
            "name": "[concat(parameters('site_name'), '/AspNetCoreRuntime.5.0.x64')]",
            "location": "[resourceGroup().location]",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites', parameters('site_name'))]"
            ]
        }
    ]
}
    

Untuk tempat penampung {SITE NAME}, gunakan nama aplikasi di Azure App Service (misalnya, contoso).

Menerbitkan dan menyebarkan aplikasi

Untuk penyebaran 64-bit:

  • Gunakan SDK .NET Core 64-bit untuk membuat aplikasi 64-bit.
  • Atur Platform ke 64 Bit di Konfigurasi>Pengaturan Umum App Service. Aplikasi harus menggunakan paket layanan Dasar atau yang lebih tinggi untuk mengaktifkan pilihan bitness platform.

Menyebarkan aplikasi yang bergantung pada kerangka kerja

  1. Klik kanan proyek di Penjelajah Solusi dan pilih Terbitkan. Atau, pilih Build>Terbitkan {Nama Aplikasi} dari bilah alat Visual Studio.
  2. Dalam dialog Terbitkan, pilih Azure>Berikutnya.
  3. Pilih layanan Azure.
  4. Pilih Tingkat Lanjut. Dialog Terbitkan akan terbuka.
  5. Pilih grup Sumber Daya dan paket Hosting, atau buat yang baru.
  6. Pilih Selesai.
  7. Di halaman Terbitkan :
    • Untuk Konfigurasi, pilih ikon pena Edit Konfigurasi:
      • Konfirmasikan bahwa konfigurasi Rilis dipilih.
      • Dalam daftar dropdown Mode Penyebaran, pilih Tergantung Kerangka kerja.
      • Di daftar dropdown Target Runtime, pilih runtime yang diinginkan. Default adalah win-x86.
    • Untuk menghapus file tambahan saat penyebaran, buka Opsi Penerbitan File dan centang kotak untuk menghapus file tambahan di tujuan.
    • Pilih Simpan.
    • Pilih Terbitkan.

Menyebarkan aplikasi mandiri

Gunakan Visual Studio atau .NET Core CLI untuk penyebaran mandiri (SCD).

  1. Klik kanan proyek di Penjelajah Solusi dan pilih Terbitkan. Atau, pilih Build>Terbitkan {Nama Aplikasi} dari bilah alat Visual Studio.
  2. Dalam dialog Terbitkan, pilih Azure>Berikutnya.
  3. Pilih layanan Azure.
  4. Pilih Tingkat Lanjut. Dialog Terbitkan akan terbuka.
  5. Pilih grup Sumber Daya dan paket Hosting, atau buat yang baru.
  6. Pilih Selesai.
  7. Di halaman Terbitkan :
    • Untuk Konfigurasi, pilih ikon pena Edit Konfigurasi:
      • Konfirmasikan bahwa konfigurasi Rilis dipilih.
      • Dalam daftar dropdown Mode Penyebaran, pilih Mandiri.
      • Di daftar dropdown Target Runtime, pilih runtime yang diinginkan. Default adalah win-x86.
    • Untuk menghapus file tambahan saat penyebaran, buka Opsi Penerbitan File dan centang kotak untuk menghapus file tambahan di tujuan.
    • Pilih Simpan.
    • Pilih Terbitkan.

Pengaturan protokol (HTTPS)

Ikatan protokol aman memungkinkan penetapan sertifikat untuk digunakan saat merespons permintaan melalui HTTPS. Pengikatan memerlukan sertifikat privat yang valid (.pfx) yang diterbitkan untuk nama host tertentu. Untuk informasi lebih lanjut, lihat Tutorial: Mengikat sertifikat SSL kustom yang ada ke Azure App Service.

Mengubah web.config

Jika Anda perlu mengubah web.config saat penerbitan (misalnya, mengatur variabel lingkungan berdasarkan konfigurasi, profil, atau lingkungan), lihat Mengubah web.config.

Sumber daya tambahan

Azure App Service di Windows Server menggunakan Layanan Informasi Internet (IIS). Kestrel dan YARP di ujung depan menyediakan load balancer. Topik berikut berkaitan dengan teknologi IIS yang mendasarinya: