Delen via


Verschillen tussen het geïsoleerde werkrolmodel en het in-process model voor .NET in Azure Functions

Er zijn twee uitvoeringsmodellen voor .NET-functies:

Uitvoeringsmodel Beschrijving
Geïsoleerde werkrolmodel Uw functiecode wordt uitgevoerd in een afzonderlijk .NET-werkproces. Gebruiken met ondersteunde versies van .NET en .NET Framework. Zie .NET geïsoleerde werkprocesfuncties ontwikkelen voor meer informatie.
Model in proces Uw functiecode wordt uitgevoerd in hetzelfde proces als het Functions-hostproces. Ondersteunt alleen LTS-versies (Long Term Support) van .NET. Zie .NET-klassebibliotheekfuncties ontwikkelen voor meer informatie.

In dit artikel wordt de huidige status van de functionele en gedragsverschillen tussen de twee modellen beschreven. Zie .NET-apps migreren van het in-procesmodel naar het geïsoleerde werkrolmodel om te migreren van het in-procesmodel naar het geïsoleerde werkrolmodel.

Vergelijkingstabel voor uitvoeringsmodellen

Gebruik de volgende tabel om functie- en functionele verschillen tussen de twee modellen te vergelijken:

Functie/gedrag Geïsoleerde werkrolmodel In-process model3
Ondersteunde .NET-versies LTS-versies (Long Term Support),
StS-versies (Standard Term Support),
.NET Framework
LTS-versies (Long Term Support), eindigend op .NET 8
Kernpakketten Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Functions
Bindingsuitbreidingspakketten Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensions.*
Durable Functions Ondersteund Ondersteund
Modeltypen die worden weergegeven door bindingen Eenvoudige typen
JSON serialiseerbare typen
Matrices/opsommingen
Service-SDK-typen4
Eenvoudige typen
JSON serialiseerbare typen
Matrices/opsommingen
Service-SDK-typen4
HTTP-triggermodeltypen HttpRequestData / HttpResponseData
HttpRequest IActionResult (met behulp van ASP.NET Core-integratie)5 /
HttpRequest IActionResult5 /
HttpRequestMessage / HttpResponseMessage
Interacties tussen uitvoerbindingen Retourneert waarden in een uitgebreid model met:
- één of meerdere uitvoer
- matrices van uitvoer
Retourwaarden (alleen enkelvoudige uitvoer),
out Parameters
IAsyncCollector
Imperatieve bindingen1 Niet ondersteund: in plaats daarvan rechtstreeks werken met SDK-typen Ondersteund
Afhankelijkheidsinjectie Ondersteund (verbeterd modelconsistent met .NET-ecosysteem) Ondersteund
Middleware Ondersteund Niet ondersteund
Logboekregistratie ILogger<T>/ILogger verkregen uit FunctionContext of via afhankelijkheidsinjectie ILogger doorgegeven aan de functie
ILogger<T> via afhankelijkheidsinjectie
Application Insights-afhankelijkheden Ondersteund Ondersteund
Annuleringstokens Ondersteund Ondersteund
Koude begintijden2 Configureerbare optimalisaties Geoptimaliseerd
ReadyToRun Ondersteund Ondersteund
[Flexverbruik] Ondersteund Niet ondersteund
.NET Aspire Preview uitvoeren Niet ondersteund

1 Wanneer u moet communiceren met een service met behulp van parameters die tijdens runtime zijn bepaald, wordt het gebruik van de bijbehorende service-SDK's rechtstreeks aanbevolen voor het gebruik van imperatieve bindingen. De SDK's zijn minder uitgebreid, hebben meer scenario's en hebben voordelen voor foutafhandeling en foutopsporing. Deze aanbeveling is van toepassing op beide modellen.

2 Koude begintijden kunnen extra worden beïnvloed in Windows bij het gebruik van een aantal preview-versies van .NET vanwege just-in-time laden van preview-frameworks. Deze impact is van toepassing op zowel de in-proces- als out-of-process-modellen, maar kan merkbaar zijn bij het vergelijken van verschillende versies. Deze vertraging voor preview-versies is niet aanwezig in Linux-abonnementen.

3 C#-scriptfuncties worden ook in het proces uitgevoerd en gebruiken dezelfde bibliotheken als in-process-klassebibliotheekfuncties. Zie de naslaginformatie voor ontwikkelaars van Azure Functions C#-scripts (.csx) voor meer informatie.

4 Service SDK-typen zijn typen van de Azure SDK voor .NET , zoals BlobClient.

5 ASP.NET Core-typen worden niet ondersteund voor .NET Framework.

Ondersteunde versies

Versies van de Functions-runtime ondersteunen specifieke versies van .NET. Zie het overzicht van runtimeversies van Azure Functions voor meer informatie over Functions-versies. Versieondersteuning is ook afhankelijk van of uw functies in proces of geïsoleerd werkproces worden uitgevoerd.

Notitie

Zie de huidige runtimeversie weergeven en bijwerken voor meer informatie over het wijzigen van de runtimeversie van Functions die door uw functie-app wordt gebruikt.

In de volgende tabel ziet u het hoogste niveau van .NET of .NET Framework dat kan worden gebruikt met een specifieke versie van Functions.

Runtimeversie van Functions Geïsoleerde werkrolmodel In-process model4
Functions 4.x1 .NET 9.0
.NET 8.0
.NET Framework 4.82
.NET 8.0
Functions 1.x3 n.v.t. .NET Framework 4.8

1 .NET 6 werd eerder ondersteund op beide modellen, maar bereikte het einde van de officiële ondersteuning op 12 november 2024. .NET 7 werd eerder ondersteund op het geïsoleerde werkrolmodel, maar bereikte het einde van de officiële ondersteuning op 14 mei 2024.

2 Voor het buildproces is ook de .NET SDK vereist.

3 Ondersteuning eindigt op versie 1.x van de Azure Functions-runtime op 14 september 2026. Zie deze ondersteuningsaankondiging voor meer informatie. Voor continue volledige ondersteuning moet u uw apps migreren naar versie 4.x.

4 Ondersteuning eindigt op het procesmodel op 10 november 2026. Zie deze ondersteuningsaankondiging voor meer informatie. Voor continue volledige ondersteuning moet u uw apps migreren naar het geïsoleerde werkrolmodel.

Voor het laatste nieuws over Azure Functions-releases, waaronder het verwijderen van specifieke oudere secundaire versies, controleert u Azure-app Service-aankondigingen.

Volgende stappen