gRPC na platformách podporovaných .NET
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.