Skillnader mellan den isolerade arbetsmodellen och den processbaserade modellen för .NET på Azure Functions

Det finns två körningsmodeller för .NET-funktioner:

Körningsmodell beskrivning
Isolerad arbetsmodell Funktionskoden körs i en separat .NET-arbetsprocess. Använd med versioner av .NET och .NET Framework som stöds. Mer information finns i Utveckla .NET-isolerade arbetsprocessfunktioner.
Processmodell Funktionskoden körs i samma process som Functions-värdprocessen. Stöder endast LTS-versioner (Long Term Support) av .NET. Mer information finns i Utveckla .NET-klassbiblioteksfunktioner.

I den här artikeln beskrivs det aktuella tillståndet för de funktionella och beteendemässiga skillnaderna mellan de två modellerna. Information om hur du migrerar från den processbaserade modellen till den isolerade arbetsmodellen finns i Migrera .NET-appar från den pågående modellen till den isolerade arbetsmodellen.

Jämförelsetabell för körningsmodell

Använd följande tabell för att jämföra funktionsskillnader och funktionella skillnader mellan de två modellerna:

Funktion/beteende Isolerad arbetsmodell Processmodell3
.NET-versioner som stöds Lts-versioner (Long Term Support),
StS-versioner (Standard Term Support),
.NET Framework
Long Term Support (LTS) version6
Kärnpaket Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Functions
Paket för bindningstillägg Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensions.*
Bestående funktioner Stöds Stöds
Modelltyper som exponeras av bindningar Enkla typer
JSON-serialiserbara typer
Matriser/uppräkningar
Service SDK-typer4
Enkla typer
JSON-serialiserbara typer
Matriser/uppräkningar
Service SDK-typer4
Typer av HTTP-utlösare HttpRequestData / HttpResponseData
HttpRequest / IActionResult (med ASP.NET Core-integrering)5
HttpRequest IActionResult5 /
HttpRequestMessage / HttpResponseMessage
Utdatabindningsinteraktioner Returnera värden i en expanderad modell med:
– en eller flera utdata
– matriser med utdata
Returnera värden (endast enskilda utdata),
out Parametrar
IAsyncCollector
Imperativa bindningar1 Stöds inte – arbeta i stället med SDK-typer direkt Stöds
Beroendeinmatning Stöds (förbättrad modell som överensstämmer med .NET-ekosystemet) Stöds
Mellanprogram Stöds Stöds inte
Loggning ILogger<T>/ILogger hämtas från FunctionContext eller via beroendeinmatning ILogger skickas till funktionen
ILogger<T> via beroendeinmatning
Application Insights-beroenden Stöds Stöds
Annulleringstoken Stöds Stöds
Kalla starttider2 Konfigurerbara optimeringar Optimerad
ReadyToRun Stöds Stöds

1 När du behöver interagera med en tjänst med hjälp av parametrar som bestäms vid körning rekommenderas att du använder motsvarande tjänst-SDK:er direkt över att använda imperativa bindningar. SDK:erna är mindre utförliga, täcker fler scenarier och har fördelar för felhantering och felsökning. Den här rekommendationen gäller för båda modellerna.

2 Kalla starttider kan dessutom påverkas i Windows när vissa förhandsversioner av .NET används på grund av just-in-time-inläsning av förhandsversionsramverk. Den här effekten gäller både in-process- och out-of-process-modellerna, men kan vara märkbar när du jämför mellan olika versioner. Den här fördröjningen för förhandsversioner finns inte i Linux-planer.

3 C#-skriptfunktioner körs också i processen och använder samma bibliotek som in-process-klassbiblioteksfunktioner. Mer information finns i utvecklarreferensen för Azure Functions C#-skript (.csx).

4 Service SDK-typer inkluderar typer från Azure SDK för .NET , till exempel BlobClient.

5 ASP.NET Core-typer stöds inte för .NET Framework.

6 .NET 8 stöds ännu inte i den pågående modellen, även om den är tillgänglig för den isolerade arbetsmodellen. Information om .NET 8-planer, inklusive framtida alternativ för den processbaserade modellen, finns i Azure Functions-översiktsuppdateringsposten.

Versioner som stöds

Versioner av Functions-körningen stöder specifika versioner av .NET. Mer information om Functions-versioner finns i Översikt över Azure Functions-körningsversioner. Versionsstöd beror också på om dina funktioner körs i en process eller en isolerad arbetsprocess.

Kommentar

Information om hur du ändrar den Functions-körningsversion som används av funktionsappen finns i Visa och uppdatera den aktuella körningsversionen.

I följande tabell visas den högsta nivån av .NET eller .NET Framework som kan användas med en specifik version av Functions.

Funktionskörningsversion Isolerad arbetsmodell Processmodell5
Functions 4.x .NET 8.0
.NET 7.01
.NET 6.02
.NET Framework 4.83
.NET 6.02
Funktioner 1.x4 saknas .NET Framework 4.8

1 .NET 7 når slutet av det officiella stödet den 14 maj 2024.
2 .NET 6 når slutet av det officiella stödet den 12 november 2024.
3 Byggprocessen kräver också .NET SDK. 4 Support upphör för version 1.x av Azure Functions-körningen den 14 september 2026. Mer information finns i det här supportmeddelandet. Om du vill ha fortsatt fullständigt stöd bör du migrera dina appar till version 4.x.
5 Supporten upphör för den pågående modellen den 10 november 2026. Mer information finns i det här supportmeddelandet. Om du vill ha fortsatt fullständigt stöd bör du migrera dina appar till den isolerade arbetsmodellen.

För de senaste nyheterna om Azure Functions-versioner, inklusive borttagning av specifika äldre mindre versioner, övervakar du Azure App Service-meddelanden.

Nästa steg