Due giorni fa, ho ristampato un'analisi di avvio del .NET core, perché ero coinco nella porta predefinita 5000 quando è stata rilasciata, quindi l'ho studiata attentamente.
1. Integrazione IIS
Se usi IIS come host, allora questi non sono un problema, un IIS potente può aiutarci a configurare il nome di dominio, la porta, ecc. del sito. Per quanto riguarda come distribuire un'applicazione web asp.net core su IIS, non è questo il punto. Descrivila approssimativamente:
Devi scaricare l'SDK Net Core e Server Hosting, e l'indirizzo di download è https://www.microsoft.com/net/download
Dopo l'installazione, verifica se l'SDK .NET Core è stato installato correttamente nelle informazioni dotnet da riga di comando
Se l'host del server sia stato installato con successo nel modulo IIS e nella mappatura del gestore è mostrato di seguito
Poi configura il sito e specifica i file al sito di pubblicazione
Infine, il pool di programmi dovrebbe essere configurato e scegliere non gestito, in modo che ci sia una richiesta di inoltro dell'host del server.
2. Ambiente Linux
Per non parlare dell'installazione specifica, ce ne sono anche molte. Secondo le istruzioni sul sito ufficiale, ovvero, installa l'ambiente di esecuzione di .NET Core e può essere in esecuzione.
Ecco un post consigliato per il tuo riferimento: Deploying ASP.NET Core applications to production (CentOS7)
Tornando al punto principale, come configurare i parametri di URL e porta
1. Specificare nel metodo principale del programma
Questo approccio è rigido e non così elegante anche se viene letto aggiungendo un file di configurazione. In quel momento, ho pensato che Microsoft sicuramente non avrebbe raccomandato un uso del genere, quindi ho continuato a cercarlo.
2. Passa la variabile ambiente
Ho visto un articolo su Internet su come configurare gli URL di Kestrel in ASP.NET Core RC2,
Sebbene sia ancora configurato tramite il file di configurazione, non è necessario leggere le informazioni di configurazione ad altri articoli, e può essere usato direttamente collegando o incollando il codice per vedere:
hosting.json
Program.cs
In questo modo può anche ascoltare
Ora ascolto: http://localhost:60000
Ora ascolto: http://localhost:60001
Non è incredibile! Non sopporto il combattimento vero e proprio, togli il codice sorgente! La cosa migliore di .NET Core è che ha il codice sorgente!
Fornendo la fonte, possiamo sapere che si tratta principalmente della classe WebHostBuilder, sotto il namespace Microsoft.AspNetCore.Hosting.
Il metodo principale è Build
L'obiettivo principale qui è costruire un oggetto WebHost e poi approfondire
Guardando il codice sorgente tramite il metodo Initialize, possiamo conoscere l'indirizzo URL creato dal metodo EnsureServer
Qui possiamo vedere che legge _config[WebHostDefaults.ServerUrlsKey] e _config[DeprecatedServerUrlsKey] dalla configurazione.
Il valore di WebHostDefaults.ServerUrlsKey è un valore fisso
Il valore di DeprecatedServerUrlsKey è definito all'inizio dell'oggetto WebHost
Oh! La verità viene rivelata. Quindi possiamo impostare "server.urls" nel file di configurazione.
Sommario:
In sintesi, asp.net core leggerà la configurazione nella variabile ambiente all'avvio, e il vero punto è aggiungere la seguente configurazione alle proprietà del progetto:
È stato avviato in modalità console e ho scoperto che la conversione è stata cambiata.
Quindi questo è un ambiente di sviluppo, come implementarlo sulla linea di produzione? Anche questo è molto semplice, prendendo come esempio il deployment Linux, usando il supervisore del daemon per avviare il programma, aggiungendo variabili di ambiente alla configurazione di avvio del supervisore:
Avere successo a pieni voti! Non serve nemmeno una riga di codice da modificare, haha~ |