Unterschiede zwischen dem isolierten Workermodell und dem In-Process-Modell für .NET in Azure Functions

Es gibt zwei Ausführungsmodelle für .NET-Funktionen:

Ausführungsmodell Beschreibung
Isoliertes Workermodell Ihr Funktionscode wird in einem separaten .NET-Workerprozess ausgeführt. Verwenden Sie dazu unterstützte Versionen von .NET und .NET Framework. Weitere Informationen finden Sie unter Entwickeln von isolierten .NET-Workerprozessfunktionen.
In-Process-Modell Ihr Funktionscode wird im gleichen Prozess wie der Functions-Hostprozess ausgeführt. Unterstützt nur LTS-Versionen (Long Term Support) von .NET. Weitere Informationen finden Sie unter Entwickeln von .NET-Klassenbibliotheksfunktionen.

Wichtig

Die Unterstützung für das In-Process-Modell endet am 10. November 2026. Es wird dringend empfohlen, Ihre Apps zum isolierten Workermodell zu migrieren, um den vollständigen Support zu ermöglichen.

In diesem Artikel wird der aktuelle Zustand der Funktions- und Verhaltensunterschiede zwischen den beiden Modellen beschrieben. Informationen zum Migrieren vom In-Process-Modell zum isolierten Workermodell finden Sie unter Migrieren von .NET-Apps vom In-Process-Modell zum isolierten Workermodell.

Vergleichstabelle für Ausführungsmodelle

Verwenden Sie die folgende Tabelle, um Feature- und Funktionsunterschiede zwischen den beiden Modellen zu vergleichen:

Feature/Verhalten Isoliertes Workermodell Prozessinternes Modell3
Unterstützte .NET-Versionen LTS-Versionen (Long-Term Support, langfristiger Support)
STS-Versionen (Standard Term Support, Standard-Laufzeitunterstützung),
.NET Framework
LTS-Versionen (Long Term Support)6
Erforderliche Pakete Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Functions
Pakete für Bindungserweiterungen Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensions.*
Langlebige Funktionen Unterstützt Unterstützt
Modelltypen, die durch Bindungen verfügbar gemacht werden Einfache Typen
Serialisierbare JSON-Typen
Arrays/Enumerationen
Typen von Dienst-SDKs4
Einfache Typen
JSON-serialisierbare Typen
Arrays/Enumerationen
Typen von Dienst-SDKs4
HTTP-Triggermodelltypen HttpRequestData / HttpResponseData
HttpRequest / IActionResult (mit ASP.NET Core Integration)5
HttpRequest / IActionResult5
HttpRequestMessage / HttpResponseMessage
Ausgabebindungsinteraktionen Rückgabewerte in einem erweiterten Modell mit Folgendem:
– einzelne Ausgabe oder mehrere Ausgaben
– Ausgabearrays
Rückgabewerte (nur einzelne Ausgabe),
out-Parameter,
IAsyncCollector
Imperative Bindungen1 Nicht unterstützt, arbeiten Sie stattdessen direkt mit SDK-Typen Unterstützt
Abhängigkeitsinjektion Unterstützt (verbessertes, mit dem .NET-Ökosystem konsistentes Modell) Unterstützt
Middleware Unterstützt Nicht unterstützt
Protokollierung ILogger<T>/ILogger abgerufen aus FunctionContext oder über Abhängigkeitsinjektion An die Funktion übergebene Schnittstelle ILogger
ILogger<T> über Abhängigkeitsinjektion
Application Insights-Abhängigkeiten Unterstützt Unterstützt
Abbruchtoken Unterstützt Unterstützt
Kaltstartdauer2 Konfigurierbare Optimierungen Optimiert
ReadyToRun Unterstützt Unterstützt

1 Wenn Sie mit einem Dienst unter Verwendung von Parametern interagieren müssen, die zur Laufzeit bestimmt werden, empfiehlt sich die direkte Verwendung der entsprechenden Dienst-SDKs gegenüber der Verwendung imperativer Bindungen. Die SDKs sind weniger ausführlich, decken mehr Szenarien ab und haben Vorteile bei der Fehlerbehandlung und beim Debuggen. Diese Empfehlung gilt für beide Modelle.

2 Die Kaltstartzeiten können unter Windows bei der Verwendung einiger Vorschauversionen von .NET aufgrund des Just-In-Time-Ladens von Vorschauframeworks zusätzlich beeinträchtigt werden. Diese Auswirkungen betreffen sowohl die In-Process- als auch die Out-of-Process-Modelle, können aber bei einem Vergleich zwischen verschiedenen Versionen auffällig sein. Diese Verzögerung für Vorschauversionen ist in Linux-Plänen nicht vorhanden.

3 C#-Skriptfunktionen werden auch In-Process ausgeführt und verwenden dieselben Bibliotheken wie In-Process-Klassenbibliotheksfunktionen. Weitere Informationen finden Sie in der C#-Skriptentwicklerreferenz (C#-Skript, CSX) zu Azure Functions.

4 Zu den Dienst-SDK-Typen gehören auch Typen aus dem Azure SDK für .NET, wie z. B. BlobClient.

5 ASP.NET Core-Typen werden für .NET Framework nicht unterstützt.

6 .NET 8 wird für das In-Process-Modell noch nicht unterstützt, obwohl es im isolierten Workermodell verfügbar ist. Informationen zu .NET 8-Plänen, einschließlich zukünftiger Optionen für das In-Process-Modell, finden Sie im Beitrag mit dem Update zur Azure Functions-Roadmap.

Unterstützte Versionen

Versionen der Functions-Laufzeit unterstützen bestimmte Versionen von .NET. Weitere Informationen zu den Functions-Versionen finden Sie unter Übersicht über die Runtimeversionen von Azure Functions. Die Versionsunterstützung hängt auch davon ab, ob Ihre Funktionen prozessintern oder in einem isolierten Workerprozess ausgeführt werden.

Hinweis

Informationen zum Ändern der von Ihrer Funktions-App verwendeten Functions-Runtimeversion finden Sie unter Anzeigen und Aktualisieren der aktuellen Runtimeversion.

In der folgenden Tabelle sind die höchsten .NET- bzw. .NET Framework-Versionen aufgeführt, die mit einer bestimmten Version von Functions verwendet werden können.

Version der Functions-Laufzeit Isoliertes Workermodell Prozessinternes Modell5
Functions 4.x .NET 8.0
.NET 7.01
.NET 6.02
.NET Framework 4.83
.NET 6.02
Functions 1.x4 .NET Framework 4.8

1 .NET 7 wird ab dem 14. Mai 2024 nicht mehr offiziell unterstützt.
2 .NET 6 wird ab dem 12. November 2024 nicht mehr offiziell unterstützt.
3 Für den Buildprozess ist auch das .NET SDK erforderlich. 4 Der Support für die Version 1.x der Azure Functions-Runtime endet am 14. September 2026. Weitere Informationen finden Sie in dieser Supportankündigung. Um weiterhin uneingeschränkten Support zu erhalten, müssen Sie Ihre Apps zur Version  4.x migrieren.
5 Die Unterstützung für das In-Process-Modell endet am 10. November 2026. Weitere Informationen finden Sie in dieser Supportankündigung. Um weiterhin uneingeschränkten Support zu erhalten, müssen Sie Ihre Apps zum Modell mit isolierten Workern migrieren.

Aktuelle Informationen zu Azure Functions-Releases (einschließlich Informationen zur Entfernung bestimmter älterer Nebenversionen) finden Sie unter Azure App Service-Ankündigungen.

Nächste Schritte