Dua hari yang lalu, saya mencetak ulang analisis startup .NET core, karena saya terjerat dalam port 5000 default ketika dirilis, jadi saya mempelajarinya dengan cermat.
1. Integrasi IIS
Jika Anda menggunakan IIS sebagai host, maka ini tidak masalah, IIS yang kuat dapat membantu kami mengonfigurasi nama domain, port, dll. dari situs. Adapun cara menyebarkan aplikasi web inti asp.net di IIS, bukan itu intinya di sini. Jelaskan secara kasar:
Anda perlu mengunduh Net Core SDK dan Server Hosting, dan alamat unduhannya https://www.microsoft.com/net/download
Setelah penginstalan, periksa apakah .NET Core SDK berhasil diinstal pada info dotnet baris perintah
Apakah host server berhasil diinstal di modul IIS dan pemetaan handler ditunjukkan di bawah ini
Kemudian siapkan situs dan tentukan file ke situs penerbitan
Terakhir, kumpulan program harus dikonfigurasi, dan memilih tidak dikelola, sehingga ada permintaan penerusan host server.
2. Lingkungan Linux
Belum lagi instalasi spesifiknya, ada juga banyak. Menurut instruksi di situs resminya, yaitu, instal lingkungan berjalan .NET Core dan dapat berjalan.
Berikut adalah posting blog yang direkomendasikan untuk referensi Anda sendiri: Menyebarkan aplikasi Inti ASP.NET ke produksi (CentOS7)
Kembali ke poin utama, cara mengkonfigurasi parameter URL dan port
1. Tentukan dalam metode Utama Program
Pendekatan ini tidak fleksibel dan tidak begitu elegan bahkan jika dibaca dengan menambahkan file konfigurasi. Saat ini, saya merasa bahwa Microsoft pasti tidak akan merekomendasikan penggunaan seperti itu, jadi saya terus mencarinya.
2. Lulus variabel lingkungan
Saya melihat sebuah artikel di Internet Cara mengkonfigurasi URL Kestrel di ASP.NET Core RC2,
Meskipun masih dikonfigurasi melalui file konfigurasi, tidak perlu membacakan informasi konfigurasi ke artikel lain, dan dapat digunakan secara langsung dengan mengikat, atau menempelkan kode untuk melihat:
hosting.json
Program.cs
Dengan cara ini juga bisa mendengarkan
Sekarang mendengarkan: http://localhost:60000
Sekarang mendengarkan: http://localhost:60001
Bukankah itu luar biasa! Saya tidak tahan dengan pertempuran yang sebenarnya, kurangi kode sumbernya! Sejauh ini, hal terbaik tentang .NET Core adalah memiliki kode sumber!
Dengan sumber, kita dapat mengetahui bahwa itu terutama kelas WebHostBuilder, di bawah namespace Microsoft.AspNetCore.Hosting.
Metode utamanya adalah Build
Fokus utama di sini adalah membangun objek WebHost dan kemudian melihat lebih jauh
Dengan melihat kode sumber melalui metode Initialize, kita dapat mengetahui alamat URL yang dibuat oleh metode EnsureServer
Di sini kita dapat melihat bahwa itu membaca _config[WebHostDefaults.ServerUrlsKey] dan _config[DeprecatedServerUrlsKey] dari konfigurasi.
Nilai WebHostDefaults.ServerUrlsKey adalah nilai tetap
Nilai DeprecatedServerUrlsKey ditentukan di awal objek WebHost
Aduh! Kebenaran terungkap. Jadi kita dapat mengatur "server.urls" dalam file konfigurasi.
Ringkasan:
Singkatnya, inti asp.net akan membaca konfigurasi dalam variabel lingkungan saat dimulai, dan poin sebenarnya adalah menambahkan konfigurasi berikut ke properti proyek:
Itu telah dimulai dalam mode konsol dan menemukan bahwa port telah dialihkan.
Jadi ini adalah lingkungan pengembangan, bagaimana cara menerapkannya di lini produksi? Ini juga sangat sederhana, mengambil penyebaran Linux sebagai contoh, menggunakan supervisor daemon untuk memulai program, menambahkan variabel lingkungan ke konfigurasi startup supervisor:
Berhasil dengan gemilang! Tidak ada satu baris kode pun yang perlu diubah, haha~ |