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. |
Viktigt!
Supporten upphör för den pågående modellen den 10 november 2026. Vi rekommenderar starkt att du migrerar dina appar till den isolerade arbetsmodellen för fullt stöd.
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 |
Lts-versioner (Long Term Support), som slutar med .NET 8 |
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 ParametrarIAsyncCollector |
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 funktionenILogger<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 |
[Flex-förbrukning] | Stöds | Stöds inte |
.NET Aspire | Förhandsversion | Stöds inte |
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.
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 | Processmodell4 |
---|---|---|
Funktioner 4.x1 | .NET 9.0 .NET 8.0 .NET Framework 4.82 |
.NET 8.0 |
Funktioner 1.x3 | saknas | .NET Framework 4.8 |
1 .NET 6 hade tidigare stöd för båda modellerna men nådde slutet av det officiella stödet den 12 november 2024. .NET 7 hade tidigare stöd för den isolerade arbetsmodellen men nådde slutet av det officiella stödet den 14 maj 2024.
2 Byggprocessen kräver också .NET SDK.
3 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.
4 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.