Da .NET Core er tværplatforms, kan ASP.NET Core-projekter køre både på Windows og Linux, og hvis de implementeres på Windows, kan de implementeres på IIS eller køres direkte via kommandolinjen, uafhængigt af IIS-tjenester, på grund af inkluderingen af Kestrel-containere i ASP.NET Core.
For mere information om, hvordan du udruller ASP.NET Core-applikationer til IIS-tjenester, kan du henvise til følgende:
ASP.NET Core implementeres i IISUndervejsogUden for processenTo hostingmodeller
Ressourcer:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
In-Process-model
Siden ASP.NET Core 3.0,In-process hosting er aktiveret som standard for alle applikationer, der er udrullet til IIS, ser web.config-filen sådan ud:
kan seshostingModel="inprocess", en in-process modelKestrel bruges ikke, men bruger i stedet IISHttpServer() til at implementere en ny webserver, der hostes direkte inde i IIS-applikationspoolen, hvilket minder lidt om, hvordan traditionel ASP.NET blev introduceret i IIS.
Følgende diagram illustrerer forholdet mellem IIS, ASP.NET Core-moduler og in-process hostede applikationer:
Når du prøver at få adgang til hjemmesiden, kan du se serveren via responsheaderen, som vist på billedet nedenfor:
Når man ser på processerne gennem jobhåndteringen, er der kun 2 processer, som vist i figuren nedenfor:
Out-of-Process-modellen
Denne model IIS fungerer som en reverse proxy, og når den modtager en anmodning, skal den videresende den til Kestrel-tjenesten, som er en tværplatform-webserver indlejret i ASP.NET Core-applikationer.
Følgende diagram illustrerer forholdet mellem IIS, ASP.NET Core-moduler og out-of-process hostede applikationer:
Vi ændrer web.config-filen som følger:
Når vi tilgår hjemmesiden via en browser, kan vi se, at serverværdien for responsheaderen er blevet til Kestrel, som vist i figuren nedenfor:
Da jeg kiggede på joblisten samtidig, fandt jeg ud af, at der er 3 processer, som vist i figuren nedenfor:
resumé
I InProcess-administreret model leveres anmodninger og svar gennem w3wp.exe eller IISExpress, mens det i OutOfProcess-arbejdsprocessen er dotnet.exe I InProcess-administreret model bruges en enkelt webserver, mens der i OutOfProcess-administreret model kan bruges to webservere.
Den åbenlyse grund til at bruge den nye In-Process-model er, at den er hurtigere og bruger færre ressourcer,InProcess-styrede modellen giver bedre ydeevneFordi det kører direkte i processen i IIS-applikationspoolen. Der er ingen intern HTTP-trafik og overhead, og forespørgsler behandles straks.
|