Deoarece .NET Core este multiplatformă, proiectele ASP.NET Core pot rula atât pe Windows, cât și pe Linux, iar dacă sunt implementate pe Windows, pot fi implementate pe IIS sau pot fi rulate direct prin linia de comandă, independent de serviciile IIS, datorită includerii containerelor Kestrel în ASP.NET Core.
Pentru mai multe informații despre cum să implementezi aplicațiile ASP.NET Core în serviciile IIS, poți consulta următoarele:
ASP.NET Core este implementat în IISÎn curs de desfășurareșiIeșit din procesDouă modele gazdă
Resurse:
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
Modelul în proces
De la ASP.NET Core 3.0,Găzduirea în proces este activată implicit pentru toate aplicațiile implementate în IIS, fișierul web.config arată astfel:
Se poate vedeahostingModel="inprocess", un model în procesȘorecel nu este folosit, dar folosește în schimb IISHttpServer() pentru a implementa un nou server web găzduit direct în cadrul pool-ului de aplicații IIS, ceea ce este oarecum similar cu modul în care ASP.NET tradițional a fost introdus în IIS.
Diagrama următoare ilustrează relația dintre IIS, modulele ASP.NET Core și aplicațiile găzduite aflate în proces:
Încercând să accesezi site-ul, poți vedea serverul prin antetul de răspuns, așa cum se vede în imaginea de mai jos:
Privind procesele prin managerul de activități, există doar 2 procese, așa cum se vede în figura de mai jos:
Modelul Out-of-Process
Acest model IIS acționează ca un proxy invers, iar când primește o cerere, trebuie să o redirecționeze către serviciul Kestrel, care este un server web cross-platform integrat în aplicațiile ASP.NET Core.
Diagrama următoare ilustrează relația dintre IIS, modulele ASP.NET Core și aplicațiile găzduite în afara procesului:
Modificăm fișierul web.config astfel:
Când accesăm site-ul printr-un browser, putem vedea că valoarea serverului din antetul răspunsului a devenit Kestrel, așa cum se arată în figura de mai jos:
Privind managerul de sarcini în același timp, am descoperit că sunt 3 procese, așa cum se vede în figura de mai jos:
rezumat
În modelul gestionat InProcess, cererile și răspunsurile sunt furnizate prin w3wp.exe sau IISExpress, în timp ce în procesul de lucru OutOfProcess implicat, este dotnet.exe În modelul gestionat InProcess, se folosește un singur server web, în timp ce în modelul gestionat OutOfProcess pot fi folosiți doi servere web.
Motivul evident pentru folosirea noului model In-Process este că este mai rapid și consumă mai puține resurse,Modelul gestionat InProcess oferă performanțe mai bunePentru că rulează direct în procesul pool-ului de aplicații IIS. Nu există trafic HTTP intern și overhead, iar cererile sunt procesate imediat.
|