Před dvěma dny jsem znovu vytiskl analýzu spuštění .NET jádra, protože jsem byl při vydání zamotán do výchozího portu 5000, takže jsem ji pečlivě studoval.
1. Integrace IIS
Pokud používáte IIS jako hostitele, pak to není problém, výkonný IIS nám může pomoci nastavit doménové jméno, port atd. webu. Co se týče nasazení asp.net jádrové webové aplikace na IIS, to zde není podstatné. Přibližně to popsat:
Musíte si stáhnout Net Core SDK a Server Hosting a adresa ke stažení je https://www.microsoft.com/net/download
Po instalaci zkontrolujte, zda je .NET Core SDK úspěšně nainstalováno na příkazové info dotnet
Zda je hostitel serveru úspěšně nainstalován v modulu IIS a mapování handlerů, je uvedeno níže
Pak nastavte web a zadejte soubory na publikační stránku
Nakonec by měl být programový pool nakonfigurován a zvolen jako nespravovaný, aby existoval požadavek na přesměrování hostitele serveru.
2. Linuxové prostředí
Nemluvě o konkrétní instalaci, těch je také hodně. Podle instrukcí na oficiálních stránkách tedy nainstalujte běžící prostředí .NET Core a může běžet.
Zde je doporučený blogový příspěvek pro vlastní orientaci: Nasazení ASP.NET Core aplikací do produkce (CentOS7)
Zpět k hlavnímu bodu, jak nastavit parametry URL a portu
1. Specifikujte v hlavní metodě programu
Tento přístup je neflexibilní a ne tak elegantní, i když je načten přidáním konfiguračního souboru. V té době jsem cítil, že Microsoft takové využití rozhodně nedoporučí, takže jsem pokračoval v hledání.
2. Předat proměnnou prostředí
Viděl jsem článek na internetu Jak nastavit Kestrel URL v ASP.NET Core RC2,
Ačkoliv je stále konfigurován přes konfigurační soubor, nemusí předávat konfigurační informace ostatním článkům a lze jej použít přímo pomocí vazby nebo vložit kód pro zobrazení:
hosting.json
Program.cs
Tímto způsobem může také poslouchat
Teď posloucháme: http://localhost:60000
Teď poslouchám: http://localhost:60001
Není to úžasné! Nemůžu vystát samotný boj, odpočtěte zdrojový kód! Nejlepší na .NET Core je, že má zdrojový kód!
Z hlediska sourcingu můžeme vědět, že jde hlavně o třídu WebHostBuilder, pod jmenným prostorem Microsoft.AspNetCore.Hosting.
Hlavní metodou je Build
Hlavním cílem je vytvořit WebHost objekt a pak se podívat dál
Prohlížením zdrojového kódu metodou Initialize můžeme zjistit URL adresu vytvořenou metodou EnsureServer
Zde vidíme, že z konfigurace čte _config[WebHostDefaults.ServerUrlsKey] a _config[DeprecatedServerUrlsKey].
Hodnota WebHostDefaults.ServerUrlsKey je pevná hodnota
Hodnota DeprecatedServerUrlsKey je definována na začátku objektu WebHost
Ó! Pravda je odhalena. Takže můžeme nastavit "server.urls" v konfiguračním souboru.
Shrnutí:
Shrnuto, asp.net jádro při spuštění přečte konfiguraci v proměnné prostředí a skutečným cílem je přidat následující konfiguraci do vlastností projektu:
Byl spuštěn v konzolovém režimu a zjistil jsem, že port byl přepnut.
Takže toto je vývojové prostředí, jak ho nasadit na výrobní lince? To je také velmi jednoduché, například při nasazení Linuxu, kde se program spustí pomocí daemon supervisora, přidá se environmentální proměnné do startovací konfigurace supervisora:
Uspějte na jedničku! Není potřeba měnit ani jeden řádek kódu, haha~ |