Pred dvoma dňami som znovu vytlačil analýzu spustenia .NET jadra, pretože som bol pri vydaní zamotaný do predvoleného portu 5000, takže som ho dôkladne študoval.
1. Integrácia IIS
Ak používate IIS ako hostiteľa, nie je to problém, výkonný IIS nám môže pomôcť nastaviť doménové meno, port a podobne stránky. Čo sa týka nasadenia asp.net core webovej aplikácie na IIS, o to tu nejde. Približne to opíšte:
Musíte si stiahnuť Net Core SDK a Server Hosting a adresa na stiahnutie je https://www.microsoft.com/net/download
Po inštalácii skontrolujte, či je .NET Core SDK úspešne nainštalované na príkazovom riadku dotnet info
Či je hostiteľ servera úspešne nainštalovaný v module IIS a mapovanie handlerov, je uvedené nižšie
Potom nastavte stránku a špecifikujte súbory na publikačnú stránku
Nakoniec by mal byť programový pool nakonfigurovaný a zvolený ako nespravovaný, aby existoval požiadavka na presmerovanie hostiteľa na server.
2. Linuxové prostredie
Nehovoriac o konkrétnej inštalácii, je ich tiež veľa. Podľa inštrukcií na oficiálnej webovej stránke, teda nainštalovať bežiace prostredie .NET Core a môže bežať.
Tu je odporúčaný blogový príspevok pre vašu vlastnú referenciu: Nasadenie ASP.NET Core aplikácií do produkcie (CentOS7)
Späť k hlavnej téme, ako nastaviť URL a parametre portu
1. Špecifikovať v hlavnej metóde programu
Tento prístup je nepružný a nie taký elegantný, aj keď sa číta pridaním konfiguračného súboru. V tom čase som mal pocit, že Microsoft by takéto využitie určite neodporúčal, tak som pokračoval v hľadaní.
2. Prejdite environmentálnu premennú
Na internete som videl článok Ako konfigurovať Kestrel URL v ASP.NET Core RC2,
Aj keď je stále konfigurovaný cez konfiguračný súbor, nemusí prečítať konfiguračné informácie do iných článkov a môže sa použiť priamo väzbou alebo vložením kódu na zobrazenie:
hosting.json
Program.cs
Takto môže aj počúvať
Teraz počúvam: http://localhost:60000
Teraz počúvam: http://localhost:60001
Nie je to úžasné! Nemôžem vystáť samotný boj, odpočítajte zdrojový kód! Najlepšia vec na .NET Core je, že má zdrojový kód!
Podľa zdrojov vieme, že ide hlavne o triedu WebHostBuilder, pod menným priestorom Microsoft.AspNetCore.Hosting.
Hlavnou metódou je Build
Hlavným cieľom je vytvoriť WebHost objekt a potom sa pozrieť ďalej
Pozretím sa do zdrojového kódu metódou Initialize môžeme zistiť URL adresu vytvorenú metódou EnsureServer
Tu vidíme, že číta _config[WebHostDefaults.ServerUrlsKey] a _config[DeprecatedServerUrlsKey] z konfigurácie.
Hodnota WebHostDefaults.ServerUrlsKey je pevná hodnota
Hodnota DeprecatedServerUrlsKey je definovaná na začiatku objektu WebHost
Och! Pravda sa odhalí. Takže môžeme nastaviť "server.urls" v konfiguračnom súbore.
Zhrnutie:
Na záver, jadro asp.net pri spustení prečíta konfiguráciu v environmentálnej premennej a skutočným cieľom je pridať nasledujúcu konfiguráciu do vlastností projektu:
Bol spustený v konzolovom režime a zistil som, že port bol prepnutý.
Takže toto je vývojové prostredie, ako ho nasadiť na výrobnej linke? Je to tiež veľmi jednoduché, napríklad nasadenie Linuxu, pomocou daemon supervisora na spustenie programu, pridanie environmentálnych premenných do konfigurácie startupu supervisora:
Uspiejte na výbornú! Netreba meniť ani jeden riadok kódu, haha~ |