Dela via


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.

Av James Newton-King

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

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