Wie wird das Asp.Net Core Hosting-Modell in Webanwendungen verwendet?

Der Asp.net-Kern hat das Hosting-Modell erheblich verbessert. In früheren Versionen wurde erwartet, dass die Asp.net Core-Webanwendungen über Proxy-Webserver wie IIS unter Windows, Apache oder NGINX gehostet werden. Der neue Asp.net Core 2.2 ermöglicht jedoch das direkte Hosten der Asp.net-Anwendung in Windows in IIS ohne die externen Serveranforderungen. Dies erhöht somit den Durchsatz unter Verwendung eines einfachen In-Process-Hosting-Mechanismus.

Hosting-Modelle in ASP.NET Core

ASP.NET ist eine Technologie von Microsoft, mit der Sie dynamische Seiten auf der Webserverseite erstellen können.

Hosting ASP.NET ist vollständig in Windows -basierte Software sowie mit dem Betriebssystem selbst integriert. Diese Technologie gilt als ziemlich sicher und zuverlässig und einfach zu bedienen. Es wird hauptsächlich für die Entwicklung von In-App-Produkten verwendet.

Es gibt zwei Arten von Hosting-Modellen in ASP.NET Core, d. H. In-Process-Hosting und Out-of-Process-Hosting. Vor ASP.Net Core 2.2 gab es nur ein Hosting-Modell, nämlich Out-of-Process-Hosting. Aufgrund der Leistung wird jedoch das In-Process-Hosting-Modell in Asp.net Core 2.2-Versionen eingeführt.

Einführung des In-Process-Hosting-Modells in Asp.net Core

In früheren Versionen von ASP.NET Core musste die Anwendung in IIS mithilfe eines Out-of-Process-Hostingmodells gehostet werden, das über IIS als Proxy fungiert. Anforderungen, die IIS oder IIS Express betreffen, werden an die ASP.NET Core-Webanwendung weitergeleitet, die in Kestrel Web Server ausgeführt wird. Beim neuen In-Process-Hosting wird jedoch nur ein Server für das Hosting wie IIS, Nginx oder Linux verwendet. Dies bedeutet, dass anstelle der Weiterleitung von Anforderungen an Kestrel eine neue Webserver-Implementierung (IISHttpServer) direkt im IIS-Anwendungspool gehostet wird, die die Anforderung bearbeitet. Mit ASP.NET Core 3.1 wird das In-Process-Hosting-Modell als Standardmodell verwendet, wenn Sie eine neue Anwendung unter Verwendung einer vorhandenen Vorlage entwickeln.

Anscheinend weist dieses Hosting-Modell im Vergleich zum Out-Of-Process-Hosting-Modell einen hohen Durchsatz und eine Leistungssteigerung auf.

Out-of-Process-Hosting-Modell

In Out-of-Process-Hosting-Modellen können Sie den Kestrel-Server entweder direkt als Server für Benutzeranfragen verwenden oder die Anwendung in IIS bereitstellen, das als Proxyserver fungiert und Anforderungen an den internen Kestrel-Server sendet. Bei dieser Art von Hosting-Modell haben Sie zwei Optionen für das Hosting, d. H. Die Verwendung von Kestrel und Proxy Server:

1. Turmfalke benutzen

In diesem Fall fungiert Kestrel selbst als Edgeserver, der Benutzeranforderungen direkt überträgt, was bedeutet, dass nur der Kestrel-Server für die Anwendung verwendet werden kann.

2. Verwenden eines Proxyservers

Aufgrund der Einschränkungen des Kestrel-Servers kann dies nicht in allen Anwendungen verwendet werden. In solchen Fällen muss man leistungsstarke Server wie IIS, Apache oder NGINX verwenden. In dieser Situation fungiert dieser Server als Reserve-Proxy-Server, der jede Anforderung an den internen Kestrel-Server umleitet, auf dem die Anwendung ausgeführt wird. Hier laufen zwei Server wie IIS und Kestrel.

Dieses Hosting-Modell ist ein Standardmodell für alle Anwendungen, die in einer früheren .NET Core 2.2-Version implementiert wurden. Eine der Einschränkungen bei der Verwendung dieses Typs ist beispielsweise die Langsamkeit der Leistung.

Abschließende Gedanken:

Den Fakten zufolge möchten die meisten Webentwicklungsunternehmen von ASP.Net das In-Process-Hosting-Modell verwenden. Da es weniger Ressourcen verbraucht und eine gute Leistung bietet. Da für Kestrel kein zusätzlicher Prozess erforderlich ist und keine zusätzliche Kommunikation zwischen IIS und Kestrel vermieden wird. Es gibt jedoch Fälle, in denen Sie sich für ein Out-of-Process-Hosting entscheiden möchten, z. B. für das Hosting derselben Webanwendung unter Windows und Linux. Wenn es darum geht, die Anwendung auf anderen Plattformen zu hosten, ist Kestrel der Hauptmechanismus für die Verarbeitung von HTTP-Anforderungen auf allen Plattformen.

Das Ausführen von In-Process unter IIS ist jedoch der beste Weg, es sei denn, Sie haben eine ganz bestimmte Anforderung an Kestrel.

Hauptbildquelle: Foto von Farzad Nazifi auf Unsplash




Bemerkungen (0)

Hinterlasse einen Kommentar