Siden .NET Core er plattformuavhengig, kan ASP.NET Core-prosjekter kjøres både på Windows og Linux, og hvis de distribueres på Windows, kan de distribueres på IIS eller kjøres direkte via kommandolinjen, uavhengig av IIS-tjenester, på grunn av inkluderingen av Kestrel-containere i ASP.NET Core.
For mer informasjon om hvordan du distribuerer ASP.NET Core-applikasjoner til IIS-tjenester, kan du se følgende:
ASP.NET Core distribueres i IISPågående prosessogUt-av-prosessTo hostingmodeller
Ressurser:
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
In-Process-modellen
Siden ASP.NET Core 3.0,In-process hosting er aktivert som standard for alle applikasjoner som distribueres til IIS, ser web.config-filen slik ut:
kan seeshostingModel="inprocess", en modell under prosesseringTårnfalk brukes ikke, men bruker i stedet IISHttpServer() for å implementere en ny webserver som hostes direkte inne i IIS-applikasjonspoolen, noe som ligner på hvordan tradisjonell ASP.NET ble introdusert i IIS.
Følgende diagram illustrerer forholdet mellom IIS, ASP.NET Core-moduler og driftende hostede applikasjoner:
Når du prøver å få tilgang til nettsiden, kan du se serveren gjennom responshodet, som vist på bildet nedenfor:
Når man ser på prosessene gjennom oppgavebehandlingen, finnes det bare 2 prosesser, som vist i figuren under:
Out-of-Process-modellen
Denne modellen IIS fungerer som en omvendt proxy, og når den mottar en forespørsel, må den videresende den til Kestrel-tjenesten, som er en plattformuavhengig webserver innebygd i ASP.NET Core-applikasjoner.
Følgende diagram illustrerer forholdet mellom IIS, ASP.NET Core-moduler og ut-av-prosess hostede applikasjoner:
Vi endrer web.config-filen som følger:
Når vi får tilgang til nettstedet via en nettleser, kan vi se at serververdien til responsheaderen har blitt Kestrel, som vist i figuren nedenfor:
Da jeg så på oppgavebehandleren samtidig, fant jeg ut at det er 3 prosesser, som vist i figuren under:
sammendrag
I InProcess-administrert modell leveres forespørsler og svar gjennom w3wp.exe eller IISExpress, mens det i OutOfProcess-arbeidsprosessen som er involvert, er dotnet.exe I InProcess-administrert modell brukes én enkelt webserver, mens i OutOfProcess-administrert modell kan to webservere brukes.
Den åpenbare grunnen til å bruke den nye In-Process-modellen er at den er raskere og bruker færre ressurser,InProcess-administrerte modellen gir bedre ytelseFordi den kjører direkte i prosessen med IIS-applikasjonspoolen. Det er ingen intern HTTP-trafikk eller overhead, og forespørsler behandles umiddelbart.
|