İki gün önce, .NET core startup analizini yeniden yayımladım, çünkü çıkışında varsayılan 5000 portuna takılı kalmıştım ve dikkatlice inceledim.
1. IIS entegrasyonu
IIS'i ana bilgisayar olarak kullanıyorsanız, bunlar sorun olmaz, güçlü IIS sitenin alan adını, portunu vb. yapılandırmamıza yardımcı olabilir. IIS'te asp.net çekirdekli bir web uygulamasının nasıl kurulacağı konusuna gelince, burada mesele bu değil. Kabaca şunu şöyle tanımlayalım:
Net Core SDK ve Server Hosting'i indirmeniz gerekiyor ve indirme adresi https://www.microsoft.com/net/download
Kurulumdan sonra, .NET Core SDK'nın komut satırı dotnet bilgisine başarıyla yüklenip kurulmadığını kontrol edin
Sunucu ana bilgisayarının IIS modülünde başarıyla kurulup kurulmadığı ve handler eşlemesi aşağıda gösterilmiştir
Sonra siteyi kurup dosyaları yayınlama sitesine belirtin
Son olarak, program havuzu yapılandırılmalı ve yönetilmeyen seçeneği seçmelidir, böylece bir sunucu host yönlendirme talebi oluşur.
2. Linux ortamı
Özel kurulumdan bahsetmiyorum bile, ayrıca çok sayıda var. Resmi web sitesindeki talimatlara göre, yani .NET Core çalışma ortamını kurun, çalışabilir.
İşte kendi referansınız için önerilen bir blog yazısı: ASP.NET Core uygulamalarını üretime (CentOS7) dağıtmak
Ana noktaya geri dönelim, URL ve port parametreleri nasıl yapılandırılır?
1. Ana Programın Yönteminde Belirtin
Bu yaklaşım esnek değildir ve yapılandırma dosyası eklenerek okunsa bile o kadar zarif değildir. O sırada, Microsoft'un böyle bir kullanım önermeyeceğini düşündüm, bu yüzden aramaya devam ettim.
2. Çevre değişkenini geçirin
İnternette Kestrel URL'leri nasıl yapılandırılır ASP.NET Core RC2'de bir makale gördüm,
Yapılandırma dosyası üzerinden yapılandırılmasına rağmen, yapılandırma bilgilerini diğer makalelere okumasına gerek yoktur ve doğrudan bağlama yoluyla kullanılabilir veya kodu yapıştırarak şunları görebilirsiniz:
hosting.json
Program.cs
Bu şekilde dinleyebiliyor da
Şimdi dinlemek: http://localhost:60000
Şimdi dinlemek: http://localhost:60001
Harika değil mi! Gerçek dövüşe dayanamıyorum, kaynak kodunu çıkar! .NET Core'un en iyi yanı, kaynak koduna sahip olması!
Kaynak kullanarak, bunun esas olarak WebHostBuilder sınıfı olduğunu, Microsoft.AspNetCore.Hosting isim alanı altında olduğunu anlayabiliriz.
Ana yöntem Build
Buradaki ana odak bir WebHost nesnesi oluşturmak ve ardından daha ileriye bakmaktır
Initialize yöntemiyle kaynak koduna bakarak, EnsureServer yöntemiyle oluşturulan URL adresini bilebiliriz
Burada yapılandırmadan _config[WebHostDefaults.ServerUrlsKey] ve _config[DeprecatedServerUrlsKey] okuduğunu görebiliyoruz.
WebHostDefaults.ServerUrlsKey değeri sabit bir değerdir
DeprecatedServerUrlsKey değeri, WebHost nesnesinin başında tanımlanmıştır
Ah! Gerçek ortaya çıkıyor. Böylece yapılandırma dosyasında "server.urls" ayarlayabiliriz.
Özet:
Özetle, asp.net çekirdek başladığında ortam değişkenindeki yapılandırmayı okuyacak ve asıl amaç proje özelliklerine aşağıdaki yapılandırmayı eklemektir:
Konsol modunda başlatıldı ve portun değiştirildiği tespit edildi.
Yani bu bir geliştirme ortamı, üretim hattında nasıl uygulanır? Bu da çok basittir; Linux dağıtımını örnek alarak, programı başlatmak için daemon süpervizörü kullanılarak yöneticinin başlangıç yapılandırmasına ortam değişkenleri ekleyin:
Başarılı ol! Tek bir satır bile kod değiştirmeye gerek yok, haha~ |