Acum două zile, am reimprimat o analiză de pornire a nucleului .NET, pentru că eram blocat în portul implicit 5000 când a fost lansat, așa că am studiat-o cu atenție.
1. Integrarea IIS
Dacă folosești IIS ca gazdă, atunci acestea nu sunt o problemă, un IIS puternic ne poate ajuta să configurăm numele de domeniu, portul etc. al site-ului. În ceea ce privește modul de a implementa o aplicație web de bază asp.net pe IIS, nu acesta este subiectul aici. Descrie-l aproximativ:
Trebuie să descarci SDK-ul Net Core și Server Hosting, iar adresa de descărcare este https://www.microsoft.com/net/download
După instalare, verifică dacă SDK-ul .NET Core este instalat cu succes în informațiile dotnet din linia de comandă
Dacă gazda serverului este instalată cu succes în modulul IIS și maparea handlerului este prezentată mai jos
Apoi configurează site-ul și specifică fișierele către site-ul de publicare
În cele din urmă, pool-ul de programe ar trebui configurat și să aleagă negestionat, astfel încât să existe o cerere de redirecționare a gazdei serverului.
2. Mediul Linux
Ca să nu mai vorbim de instalarea specifică, sunt și multe astfel de instalații. Conform instrucțiunilor de pe site-ul oficial, adică instalează mediul de rulare .NET Core și acesta poate rula.
Iată o postare recomandată pe blog pentru referința ta: Implementarea aplicațiilor ASP.NET Core în producție (CentOS7)
Revenind la ideea principală, cum să configurezi parametrii URL și portului
1. Specifică în metoda principală a programului
Această abordare este inflexibilă și nu prea elegantă, chiar dacă este citită prin adăugarea unui fișier de configurare. În acel moment, am simțit că Microsoft cu siguranță nu ar recomanda o astfel de utilizare, așa că am continuat să caut.
2. Trece variabila de mediu
Am văzut un articol pe Internet despre cum să configurezi URL-urile Kestrel în ASP.NET Core RC2,
Deși este încă configurat prin fișierul de configurare, nu este nevoie să citească informațiile de configurare către alte articole și poate fi folosit direct prin legare sau prin lipire a codului pentru a vedea:
hosting.json
Program.cs
Astfel, poate asculta și el
Acum ascultă: http://localhost:60000
Acum ascultă: http://localhost:60001
Nu-i așa că e uimitor! Nu suport lupta propriu-zisă, scad codul sursă! De departe, cel mai bun lucru la .NET Core este că are cod sursă!
Prin sursă, putem ști că este în principal clasa WebHostBuilder, sub spațiul de nume Microsoft.AspNetCore.Hosting.
Metoda principală este Build
Principalul obiectiv aici este construirea unui obiect WebHost și apoi să analizăm mai departe
Analizând codul sursă prin metoda Initialize, putem cunoaște adresa URL creată de metoda EnsureServer
Aici putem vedea că citește _config[WebHostDefaults.ServerUrlsKey] și _config[DeprecatedServerUrlsKey] din configurație.
Valoarea WebHostDefaults.ServerUrlsKey este o valoare fixă
Valoarea DeprecatedServerUrlsKey este definită la începutul obiectului WebHost
Oh! Adevărul este dezvăluit. Astfel, putem seta "server.urls" în fișierul de configurare.
Rezumat:
În concluzie, nucleul asp.net va citi configurația în variabila de mediu la pornire, iar scopul real este să adauge următoarea configurație la proprietățile proiectului:
A fost pornit în modul consolă și a constatat că portul a fost schimbat.
Deci acesta este un mediu de dezvoltare, cum să-l implementezi pe linia de producție? Acesta este de asemenea foarte simplu, luând implementarea Linux ca exemplu, folosind supervizorul daemonului pentru a porni programul, adăugând variabile de mediu la configurația de pornire a supervizorului:
Reușiți cu brio! Nu trebuie schimbată nicio linie de cod, haha~ |