Host dan terapkan ASP.NET Core

Secara umum, untuk menyebarkan aplikasi ASP.NET Core ke lingkungan hosting:

  • Sebarkan aplikasi yang diterbitkan ke folder di server hosting.
  • Siapkan pengelola proses yang memulai aplikasi saat permintaan tiba dan memulai ulang aplikasi setelah aplikasi mengalami crash atau server melakukan boot ulang.
  • Untuk konfigurasi proksi terbalik, siapkan proksi terbalik untuk meneruskan permintaan ke aplikasi.

Menerbitkan ke folder

Perintah dotnet publish mengompilasi kode aplikasi dan menyalin file yang diperlukan untuk menjalankan aplikasi ke dalam folder publish. Saat menyebarkan dari Visual Studio, langkah dotnet publish terjadi secara otomatis sebelum file disalin ke tujuan penyebaran.

Menjalankan aplikasi yang diterbitkan secara lokal

Untuk menjalankan aplikasi yang diterbitkan secara lokal, jalankan dotnet <ApplicationName>.dll dari folder terbitkan.

Menerbitkan file pengaturan

File *.json diterbitkan secara default. Untuk menerbitkan file pengaturan lainnya, tentukan dalam elemen <ItemGroup><Content Include= ... /> di file proyek. Contoh berikut menerbitkan file XML:

<ItemGroup>
  <Content Include="**\*.xml" Exclude="bin\**\*;obj\**\*"
    CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

Isi map

Folder publish berisi satu atau beberapa file perakitan aplikasi, dependensi, dan secara opsional runtime bahasa umum .NET.

Aplikasi .NET Core dapat diterbitkan sebagai penyebaran mandiri atau penyebaran yang bergantung pada kerangka kerja. Jika aplikasi sifatnyamandiri, file rakitan yang berisi runtime bahasa umum .NET disertakan dalam folder publish. Jika aplikasi sifatnya bergantung pada kerangka kerja, file runtime bahasa umum .NET tidak disertakan karena aplikasi memiliki referensi ke versi .NET yang dipasang di server. Model penyebaran default bergantung pada kerangka kerja. Untuk informasi lebih lanjut, lihat penyebaran aplikasi .NET Core.

Selain file .exe dan .dll, folder publish untuk aplikasi ASP.NET Core biasanya berisi file konfigurasi, aset statis, dan tampilan MVC. Untuk informasi lebih lanjut, lihat struktur direktori ASP.NET Core.

Menyiapkan manajer proses

Aplikasi ASP.NET Core adalah aplikasi konsol yang harus dimulai saat server melakukan booting dan dimulai ulang jika mengalami crash. Untuk mengotomatisasi mulai dan mulai ulang, diperlukan manajer proses. Manajer proses yang paling umum untuk ASP.NET Core adalah:

Menyiapkan proksi terbalik

Jika aplikasi menggunakan server Kestrel, Nginx, Apache, atau IIS dapat digunakan sebagai server proksi terbalik. Server proksi terbalik menerima permintaan HTTP dari Internet dan meneruskannya ke Kestrel.

Konfigurasi mana pun—dengan atau tanpa server proksi terbalik—merupakan konfigurasi hosting yang didukung. Untuk informasi lebih lanjut, lihat Kapan harus menggunakan Kestrel dengan proksi terbalik.

Konfigurasi mana pun—dengan atau tanpa server proksi terbalik—merupakan konfigurasi hosting yang didukung. Untuk informasi lebih lanjut, lihat Kapan harus menggunakan Kestrel dengan proksi terbalik.

Skenario server proksi dan penyeimbang beban

Konfigurasi tambahan mungkin diperlukan untuk aplikasi yang dihosting di belakang server proksi dan penyeimbang beban. Tanpa konfigurasi tambahan, aplikasi mungkin tidak memiliki akses ke skema (HTTP/HTTPS) dan alamat IP jarak jauh tempat permintaan berasal. Untuk informasi selengkapnya, lihat Mengonfigurasi ASP.NET Core untuk bekerja dengan server proxy dan memuat penyeimbang.

Menggunakan Visual Studio dan MSBuild untuk mengotomatiskan penyebaran

Penyebaran sering kali memerlukan tugas tambahan selain menyalin output dari dotnet publish ke server. Misalnya, file tambahan mungkin diperlukan atau dikecualikan dari folder publish. Visual Studio menggunakan MSBuild untuk penyebaran web, dan MSBuild dapat dikustomisasi untuk melakukan banyak tugas lain selama penyebaran. Untuk informasi lebih lanjut, lihat Profil penerbitan Visual Studio (.pubxml) untuk penyebaran aplikasi ASP.NET Core dan buku Menggunakan MSBuild dan Team Foundation Build.

Dengan fitur Terbitkan Web, aplikasi dapat disebarkan secara langsung dari Visual Studio ke Azure App Service. Layanan Azure DevOps mendukung penyebaran berkelanjutan ke Azure App Service. Untuk informasi lebih lanjut, lihat DevOps untuk Pengembang ASP.NET Core.

Menerbitkan ke Azure

Lihat Menerbitkan aplikasi ASP.NET Core ke Azure dengan Visual Studio untuk petunjuk tentang cara menerbitkan aplikasi ke Azure menggunakan Visual Studio. Contoh tambahan disediakan oleh Membuat aplikasi web ASP.NET Core di Azure.

Menerbitkan dengan MSDeploy di Windows

Lihat Profil penerbitan Visual Studio (.pubxml) untuk penyebaran aplikasi ASP.NET Core untuk petunjuk tentang cara menerbitkan aplikasi dengan profil publikasi Visual Studio, termasuk dari perintah Windows menggunakan perintah dotnet msbuild.

Internet Information Services (IIS)

Untuk penyebaran ke Layanan Informasi Internet (IIS) dengan konfigurasi yang disediakan oleh file web.config, lihat artikel di bawah Menghosting ASP.NET Core di Windows dengan IIS.

Menghosting di farm web

Untuk informasi tentang konfigurasi untuk menghosting aplikasi ASP.NET Core di lingkungan farm web (misalnya, penyebaran beberapa instans aplikasi Anda untuk skalabilitas), lihat Menghosting ASP.NET Core di farm web.

Menghosting di Docker

Untuk informasi lebih lanjut, lihat Menghosting ASP.NET Core di kontainer Docker.

Melakukan pemeriksaan kondisi

Gunakan Health Check Middleware untuk melakukan pemeriksaan kondisi pada aplikasi dan dependensinya. Untuk informasi lebih lanjut, lihat Pemeriksaan kondisi di ASP.NET Core.

Sumber Daya Tambahan:

Secara umum, untuk menyebarkan aplikasi ASP.NET Core ke lingkungan hosting:

  • Sebarkan aplikasi yang diterbitkan ke folder di server hosting.
  • Siapkan pengelola proses yang memulai aplikasi saat permintaan tiba dan memulai ulang aplikasi setelah aplikasi mengalami crash atau server melakukan boot ulang.
  • Untuk konfigurasi proksi terbalik, siapkan proksi terbalik untuk meneruskan permintaan ke aplikasi.

Menerbitkan ke folder

Perintah dotnet publish mengompilasi kode aplikasi dan menyalin file yang diperlukan untuk menjalankan aplikasi ke dalam folder publish. Saat menyebarkan dari Visual Studio, langkah dotnet publish terjadi secara otomatis sebelum file disalin ke tujuan penyebaran.

Isi map

Folder publish berisi satu atau beberapa file perakitan aplikasi, dependensi, dan secara opsional runtime bahasa umum .NET.

Aplikasi .NET Core dapat diterbitkan sebagai penyebaran mandiri atau penyebaran yang bergantung pada kerangka kerja. Jika aplikasi sifatnyamandiri, file rakitan yang berisi runtime bahasa umum .NET disertakan dalam folder publish. Jika aplikasi sifatnya bergantung pada kerangka kerja, file runtime bahasa umum .NET tidak disertakan karena aplikasi memiliki referensi ke versi .NET yang dipasang di server. Model penyebaran default bergantung pada kerangka kerja. Untuk informasi lebih lanjut, lihat penyebaran aplikasi .NET Core.

Selain file .exe dan .dll, folder publish untuk aplikasi ASP.NET Core biasanya berisi file konfigurasi, aset statis, dan tampilan MVC. Untuk informasi lebih lanjut, lihat struktur direktori ASP.NET Core.

Menyiapkan manajer proses

Aplikasi ASP.NET Core adalah aplikasi konsol yang harus dimulai saat server melakukan booting dan dimulai ulang jika mengalami crash. Untuk mengotomatisasi mulai dan mulai ulang, diperlukan manajer proses. Manajer proses yang paling umum untuk ASP.NET Core adalah:

Menyiapkan proksi terbalik

Jika aplikasi menggunakan server Kestrel, Nginx, Apache, atau IIS dapat digunakan sebagai server proksi terbalik. Server proksi terbalik menerima permintaan HTTP dari Internet dan meneruskannya ke Kestrel.

Konfigurasi mana pun—dengan atau tanpa server proksi terbalik—merupakan konfigurasi hosting yang didukung. Untuk informasi lebih lanjut, lihat Kapan harus menggunakan Kestrel dengan proksi terbalik.

Skenario server proksi dan penyeimbang beban

Konfigurasi tambahan mungkin diperlukan untuk aplikasi yang dihosting di belakang server proksi dan penyeimbang beban. Tanpa konfigurasi tambahan, aplikasi mungkin tidak memiliki akses ke skema (HTTP/HTTPS) dan alamat IP jarak jauh tempat permintaan berasal. Untuk informasi selengkapnya, lihat Mengonfigurasi ASP.NET Core untuk bekerja dengan server proxy dan memuat penyeimbang.

Menggunakan Visual Studio dan MSBuild untuk mengotomatiskan penyebaran

Penyebaran sering kali memerlukan tugas tambahan selain menyalin output dari dotnet publish ke server. Misalnya, file tambahan mungkin diperlukan atau dikecualikan dari folder publish. Visual Studio menggunakan MSBuild untuk penyebaran web, dan MSBuild dapat dikustomisasi untuk melakukan banyak tugas lain selama penyebaran. Untuk informasi lebih lanjut, lihat Profil penerbitan Visual Studio (.pubxml) untuk penyebaran aplikasi ASP.NET Core dan buku Menggunakan MSBuild dan Team Foundation Build.

Dengan fitur Terbitkan Web, aplikasi dapat disebarkan langsung dari Visual Studio ke Azure App Service. Layanan Azure DevOps mendukung penyebaran berkelanjutan ke Azure App Service. Untuk informasi lebih lanjut, lihat DevOps untuk Pengembang ASP.NET Core.

Menerbitkan ke Azure

Lihat Menerbitkan aplikasi ASP.NET Core ke Azure dengan Visual Studio untuk petunjuk tentang cara menerbitkan aplikasi ke Azure menggunakan Visual Studio. Contoh tambahan disediakan oleh Membuat aplikasi web ASP.NET Core di Azure.

Menerbitkan dengan MSDeploy di Windows

Lihat Profil penerbitan Visual Studio (.pubxml) untuk penyebaran aplikasi ASP.NET Core untuk petunjuk tentang cara menerbitkan aplikasi dengan profil publikasi Visual Studio, termasuk dari perintah Windows menggunakan perintah dotnet msbuild.

Internet Information Services (IIS)

Untuk penyebaran ke Layanan Informasi Internet (IIS) dengan konfigurasi yang disediakan oleh file web.config, lihat artikel di bawah Menghosting ASP.NET Core di Windows dengan IIS.

Menghosting di farm web

Untuk informasi tentang konfigurasi untuk menghosting aplikasi ASP.NET Core di lingkungan farm web (misalnya, penyebaran beberapa instans aplikasi Anda untuk skalabilitas), lihat Menghosting ASP.NET Core di farm web.

Menghosting di Docker

Untuk informasi lebih lanjut, lihat Menghosting ASP.NET Core di kontainer Docker.

Sumber Daya Tambahan: