gRPC na platformách podporovaných .NET

Od James Newton – král

Tento článek popisuje požadavky a podporované platformy pro použití gRPC s .NET. Existují různé požadavky na dvě hlavní úlohy gRPC:

Formáty drátů

gRPC využívá výhod pokročilých funkcí dostupných v HTTP/2. HTTP/2 není podporováno všude, ale pro gRPC je k dispozici druhý formát drátového formátu pomocí protokolu HTTP/1.1:

  • application/grpc – gRPC přes HTTP/2 je způsob, jakým se obvykle používá gRPC.
  • application/grpc-web -gRPC-web upravuje protokol gRPC tak, aby byl kompatibilní s HTTP/1.1. gRPC-web lze použít na více místech. gRPC-web můžou používat aplikace v prohlížeči a v sítích bez úplné podpory pro HTTP/2. Již nejsou podporovány dvě pokročilé funkce gRPC: streamování klientů a obousměrné streamování.

gRPC on .NET podporuje jak formáty drátového formátu. application/grpc se používá ve výchozím nastavení. gRPC-web musí být nakonfigurovaný na klientovi a na serveru pro úspěšná gRPC webová volání. Informace o nastavení gRPC-web najdete v tématu Použití gRPC v prohlížečových aplikacích .

požadavky serveru ASP.NET Core gRPC

hostování služeb gRPC services pomocí ASP.NET Core vyžaduje .net Core 3. x nebo novější.

  • .NET 5 nebo novější
  • .NET Core 3

služby ASP.NET Core gRPC můžete hostovat na všech operačních systémech, které .net Core podporuje.

  • Windows
  • Linux
  • macOS†

macOS nepodporuje hostování ASP.NET Corech aplikací pomocí protokolu HTTPS.

podporované ASP.NET Core servery

podporují se všechny integrované ASP.NET Core servery.

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

†služba IIS vyžaduje rozhraní .net 5 a Windows 10 Build 20300,1000 nebo novější.
‡HTTP.sys vyžaduje rozhraní .net 5 a Windows 10 Build 19529 nebo novější.

předchozí verze sestavení Windows 10 můžou vyžadovat použití buildu Windows Insider .

informace o konfiguraci ASP.NET Corech serverů pro spouštění gRPC naleznete v tématu Služby gRPC s ASP.NET Core .

Služby Azure

†Azure App Service nepodporuje hostování gRPC přes HTTP/2. gRPC-web je kompatibilní alternativa.

Práce probíhá za účelem zlepšení podpory pro gRPC s HTTP/2 v Azure App Service. další informace najdete v tomto GitHub problému.

Požadavky na klienta .NET gRPC

Balíček Grpc .NET. Client podporuje volání GRPC přes HTTP/2 v .NET Core 3 a .NET 5 nebo novější.

Omezená podpora je dostupná pro gRPC přes HTTP/2 na .NET Framework. Jiné verze rozhraní .NET, jako jsou UWP, Xamarin a Unity, nevyžadují podporu HTTP/2 a musí místo toho používat gRPC-Web.

V následující tabulce jsou uvedeny implementace rozhraní .NET a jejich gRPC podpora klientů:

Implementace rozhraní .NET gRPC přes HTTP/2 gRPC – Web
.NET 5 nebo novější ✔️ ✔️
.NET Core 3 ✔️ ✔️
.NET Core 2.1 ✔️
.NET Framework 4.6.1 ⚠️† ✔️
Blazor WebAssembly ✔️
Mono 5,4 ✔️
Xamarin. iOS 10,14 ✔️
Xamarin. Android 8,0 ✔️
Univerzální platforma Windows 10.0.16299 ✔️
Unity 2018,1 ✔️

†.NET Framework nutné WinHttpHandler nakonfigurovat Windows 10 build 19622 nebo novější, což může vyžadovat použití Windows build Insider .

použití Grpc.Net.Client na .NET Framework nebo s gRPC-Web vyžaduje další konfiguraci. Další informace naleznete v tématu Použití klienta gRPC s .NET Standard 2,0.

Další zdroje informací