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
- Ramen
- Linux
- macOS†
†macOS biedt geen ondersteuning voor het hosten van ASP.NET Core-apps met HTTPS-.
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.