gRPC na podporovaných platformách .NET

Autor: James Newton-King

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

Drátové formáty

gRPC využívá pokročilé funkce dostupné v protokolu HTTP/2. Protokol HTTP/2 není podporován všude, ale pro gRPC je k dispozici druhý formát drátu pomocí protokolu HTTP/1.1:

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

gRPC v .NET podporuje oba formáty drátů. application/grpc se používá ve výchozím nastavení. GRPC-Web musí být nakonfigurován na klientovi a na serveru pro úspěšná volání gRPC-Web. Informace o nastavení gRPC-Web najdete v tématu gRPC-Web v aplikacích ASP.NET Core gRPC.

požadavky serveru ASP.NET Core gRPC

Hostování služeb gRPC s ASP.NET Core vyžaduje .NET Core 3.x nebo novější.

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

ASP.NET služby Core gRPC je možné hostovat ve všech operačních systémech, které .NET Core podporuje.

  • Windows
  • Linux
  • macOS

Podporované servery ASP.NET Core

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

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

†Požádejte si .NET 5 a Windows 11 build 22000 nebo Windows Server 2022 Build 20348 nebo novější.

Informace o konfiguraci serverů ASP.NET Core pro spouštění gRPC najdete v tématu služby gRPC s ASP.NET Core.

Služby Azure

†gRPC vyžaduje linuxové prostředí ve službě Aplikace Azure Service. Informace o nasazení služby Aplikace Azure Service najdete v tématu Nasazení aplikace .NET 6 gRPC ve službě App Service.

Požadavky klienta .NET gRPC

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

Pro gRPC přes HTTP/2 v rozhraní .NET Framework je k dispozici omezená podpora. Jiné verze .NET, jako je UPW, Xamarin a Unity, nemají požadovanou podporu HTTP/2 a musí místo toho používat gRPC-Web.

Následující tabulka uvádí implementace .NET a jejich podporu klienta gRPC:

Implementace .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 vyžaduje konfiguraci WinHttpHandler Windows 11 nebo novějšího, Windows Serveru 2019 nebo novějšího. Další informace naleznete v tématu Volání gRPC v rozhraní .NET Framework.

Použití Grpc.Net.Client s gRPC-Web vyžaduje další konfiguraci. Další informace:

Důležité

gRPC-Web vyžaduje, aby ho klient a server podporovaly. gRPC-Web je možné rychle nakonfigurovat serverem ASP.NET Core gRPC. Jiné implementace serveru gRPC vyžadují proxy server pro podporu gRPC-Web.

Další materiály