Delen via


gRPC op ondersteunde .NET-platforms

Notitie

Dit is niet de nieuwste versie van dit artikel. Zie de .NET 9-versie van dit artikelvoor de huidige release.

Waarschuwing

Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie de .NET- en .NET Core-ondersteuningsbeleidvoor meer informatie. Zie de .NET 9-versie van dit artikelvoor de huidige release.

Belangrijk

Deze informatie heeft betrekking op een pre-releaseproduct dat aanzienlijk kan worden gewijzigd voordat het commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.

Zie de .NET 9-versie van dit artikelvoor de huidige release.

Door James Newton-King

In dit artikel worden de vereisten en ondersteunde platforms besproken voor het gebruik van gRPC met .NET. Er zijn verschillende vereisten voor de twee primaire gRPC-workloads:

Gegevensformaten

gRPC maakt gebruik van geavanceerde functies die beschikbaar zijn in HTTP/2. HTTP/2 wordt niet overal ondersteund, maar er is een tweede wire-format met HTTP/1.1 beschikbaar voor gRPC:

  • application/grpc - gRPC via HTTP/2 is hoe gRPC doorgaans wordt gebruikt.
  • application/grpc-web - gRPC-Web wijzigt het gRPC-protocol zodat het compatibel is met HTTP/1.1. gRPC-Web kan op meer plaatsen worden gebruikt. gRPC-Web kan worden gebruikt door browser-apps en in netwerken zonder volledige ondersteuning voor HTTP/2. Twee geavanceerde gRPC-functies worden niet meer ondersteund: clientstreaming en bidirectionele streaming.

gRPC op .NET ondersteunt beide wire-formats. application/grpc wordt standaard gebruikt. gRPC-Web moet worden geconfigureerd op de client en de server voor geslaagde gRPC-Web-aanroepen. Zie gRPC-Web in ASP.NET Core gRPC-appsvoor meer informatie over het instellen van gRPC-Web.

ASP.NET Core gRPC-serververeisten

Voor het hosten van gRPC-services met ASP.NET Core is .NET Core 3.x of hoger vereist.

  • .NET 5 of hoger
  • .NET Core 3

ASP.NET Core gRPC-services kunnen worden gehost op alle besturingssystemen die door .NET Core worden ondersteund.

  • Windows
  • Linux
  • macOS

Ondersteunde ASP.NET Core-servers

Alle ingebouwde ASP.NET Core-servers worden ondersteund.

  • Kestrel
  • TestServer
  • IIS†
  • HTTP.sys†

†Requires .NET 5 en Windows 11 Build 22000 of Windows Server 2022 Build 20348 of hoger.

Zie gRPC-services met ASP.NET Core-voor meer informatie over het configureren van ASP.NET Core-servers om gRPC uit te voeren.

Azure services

†gRPC vereist een Linux-omgeving in Azure App Service. Zie Instructies voor het implementeren van een .NET 6 gRPC-app op App Service- voor informatie over azure App Service-implementatie.

.NET-gRPC-clientvereisten

Het Grpc.Net.Client-pakket ondersteunt gRPC-aanroepen via HTTP/2 op .NET Core 3 en .NET 5 of hoger.

Beperkte ondersteuning is beschikbaar voor gRPC via HTTP/2 op .NET Framework. Andere .NET-versies, zoals UWP en Unity, hebben geen http/2-ondersteuning nodig en moeten in plaats daarvan gRPC-Web gebruiken.

De volgende tabel bevat .NET-implementaties en hun gRPC-clientondersteuning:

.NET-implementatie gRPC over HTTP/2 gRPC-Web
.NET 5 of hoger ✔️ ✔️
.NET Core 3 ✔️ ✔️
.NET Core 2.1 ✔️
.NET Framework 4.6.1 ️ ⚠† ✔️
Blazor WebAssembly ✔️
Mono 5.4 ✔️
Universal Windows Platform 10.0.16299 ✔️
Unity 2018.1 ✔️

†.NET Framework vereist configuratie van WinHttpHandler en Windows 11 of hoger, Windows Server 2019 of hoger. Zie GRPC-aanroepen maken op .NET Frameworkvoor meer informatie.

Voor het gebruik van Grpc.Net.Client met gRPC-Web is extra configuratie vereist. Voor meer informatie:

Belangrijk

gRPC-Web vereist dat de client-en server deze ondersteunen. gRPC-Web kan snel worden geconfigureerd door een ASP.NET Core gRPC-server. Voor andere gRPC-server-implementaties is een proxy vereist om gRPC-Web te ondersteunen.

Aanvullende informatiebronnen