gRPC på .NET-plattformar som stöds
Notera
Det här är inte den senaste versionen av den här artikeln. För den aktuella utgåvan, se .NET 9-versionen av den här artikeln.
Varning
Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i .NET och .NET Core Support Policy. Den aktuella versionen finns i den .NET 9-versionen av den här artikeln.
Viktig
Den här informationen gäller en förhandsversionsprodukt som kan ändras avsevärt innan den släpps kommersiellt. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, med avseende på den information som tillhandahålls här.
Den aktuella versionen finns i den .NET 9-versionen av den här artikeln.
Den här artikeln beskriver kraven och vilka plattformar som stöds för att använda gRPC med .NET. Det finns olika krav för de två stora gRPC-arbetsbelastningarna:
Trådformat
gRPC drar nytta av avancerade funktioner som är tillgängliga i HTTP/2. HTTP/2 stöds inte överallt, men ett andra trådformat med HTTP/1.1 är tillgängligt för gRPC:
-
application/grpc
– gRPC via HTTP/2 är hur gRPC vanligtvis används. -
application/grpc-web
– gRPC-Web ändrar gRPC-protokollet så att det är kompatibelt med HTTP/1.1. gRPC-Web kan användas på fler platser. gRPC-Web kan användas av webbläsarappar och i nätverk utan fullständigt stöd för HTTP/2. Två avancerade gRPC-funktioner stöds inte längre: klientströmning och dubbelriktad direktuppspelning.
gRPC på .NET stöder båda trådformaten.
application/grpc
används som standard. gRPC-Web måste konfigureras på klienten och servern för lyckade gRPC-Web-anrop. Information om hur du konfigurerar gRPC-Web finns i gRPC-Web i ASP.NET Core gRPC-appar.
ASP.NET Core gRPC-serverkrav
Att driva gRPC-tjänster med ASP.NET Core förutsätter .NET Core 3.x eller senare.
- .NET 5 eller senare
- .NET Core 3
ASP.NET Core gRPC-tjänster kan hanteras på alla operativsystem som .NET Core stöder.
- Windows
- Linux
- macOS
- Windows
- Linux
- macOS†
†macOS stöder inte värdtjänster för ASP.NET Core-appar med HTTPS-.
ASP.NET Core-servrar som stöds
Alla inbyggda ASP.NET Core-servrar stöds.
- Kestrel
- TestServer
- IIS†
- HTTP.sys†
†Requires .NET 5 och Windows 11 Build 22000 eller Windows Server 2022 Build 20348 eller senare.
Information om hur du konfigurerar ASP.NET Core-servrar för att köra gRPC finns i gRPC-tjänster med ASP.NET Core.
Azure-tjänster
†gRPC kräver en Linux-baserad miljö i Azure App Service. Se Så här distribuerar du en .NET 6 gRPC-app i App Service för Distributionsinformation för Azure App Service.
.NET gRPC-klientkrav
Grpc.Net.Client--paketet stöder gRPC-anrop via HTTP/2 på .NET Core 3 och .NET 5 eller senare.
Begränsad support är tillgänglig för gRPC via HTTP/2 på .NET Framework. Andra .NET-versioner som UWP och Unity har inte stöd för HTTP/2 och måste använda gRPC-Web i stället.
I följande tabell visas .NET-implementeringar och deras gRPC-klientsupport:
.NET-implementering | gRPC över HTTP/2 | gRPC-Web |
---|---|---|
.NET 5 eller senare | ✔️ | ✔️ |
.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 kräver konfiguration av WinHttpHandler och Windows 11 eller senare, Windows Server 2019 eller senare. Mer information finns i Gör gRPC-anrop på .NET Framework.
Att använda Grpc.Net.Client
med gRPC-Web kräver ytterligare konfiguration. Mer information finns i:
Viktig
gRPC-Web kräver att klienten och servern för att stödja den. gRPC-Web kan snabbt konfigureras av en ASP.NET Core gRPC-server. Andra gRPC-serverimplementeringar kräver en proxy för att stödja gRPC-Web.
Ytterligare resurser
ASP.NET Core