gRPC nelle piattaforme supportate da .NET
Nota
Questa non è la versione più recente di questo articolo. Per la versione corrente, vedere la versione .NET 9 di questo articolo.
Avviso
Questa versione di ASP.NET Core non è più supportata. Per altre informazioni, vedere i criteri di supporto di .NET e .NET Core. Per la versione corrente, vedere la versione .NET 9 di questo articolo.
Importante
Queste informazioni si riferiscono a un prodotto non definitive che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Per la versione corrente, vedere la versione .NET 9 di questo articolo.
Questo articolo illustra i requisiti e le piattaforme supportate per l'uso di gRPC con .NET. Esistono requisiti diversi per i due principali carichi di lavoro gRPC:
Formati di collegamento
gRPC sfrutta le funzionalità avanzate disponibili in HTTP/2. HTTP/2 non è supportato ovunque, ma per gRPC è disponibile un secondo formato wire-format con HTTP/1.1:
application/grpc
- gRPC su HTTP/2 è il modo in cui viene in genere usato gRPC.application/grpc-web
- gRPC-Web modifica il protocollo gRPC per essere compatibile con HTTP/1.1. gRPC-Web può essere usato in più posizioni. gRPC-Web può essere usato dalle app browser e nelle reti senza supporto completo per HTTP/2. Due funzionalità gRPC avanzate non sono più supportate: streaming client e streaming bidirezionale.
gRPC in .NET supporta entrambi i formati wire. application/grpc
viene utilizzato per impostazione predefinita. gRPC-Web deve essere configurato nel client e nel server per le chiamate gRPC-Web riuscite. Per informazioni sulla configurazione di gRPC-Web, vedere gRPC-Web in ASP.NET App gRPC core.
requisiti del server ASP.NET Core gRPC
L'hosting di servizi gRPC con ASP.NET Core richiede .NET Core 3.x o versione successiva.
- .NET 5 o versione successiva
- .NET Core 3
ASP.NET servizi gRPC core possono essere ospitati in tutti i sistemi operativi supportati da .NET Core.
- Windows
- Linux
- macOS
- Windows
- Linux
- macOS†
†macOS non supporta l'hosting di app ASP.NET Core con HTTPS.
Server ASP.NET Core supportati
Sono supportati tutti i server ASP.NET Core predefiniti.
- Kestrel
- TestServer
- IIS†
- HTTP.sys†
†Requires .NET 5 e Windows 11 Build 22000 o Windows Server 2022 Build 20348 o versione successiva.
Per informazioni sulla configurazione dei server ASP.NET Core per l'esecuzione di gRPC, vedere gRPC services with ASP.NET Core (Servizi gRPC con ASP.NET Core).
Servizi di Azure
- Servizio Azure Kubernetes (AKS)
- App contenitore di Azure
- servizio app Azure†
†gRPC richiede un ambiente basato su Linux nel servizio app Azure. Vedere Procedura per distribuire un'app .NET 6 gRPC in servizio app per informazioni sulla distribuzione del servizio app Azure.
Requisiti del client .NET gRPC
Il pacchetto Grpc.Net.Client supporta le chiamate gRPC su HTTP/2 in .NET Core 3 e .NET 5 o versioni successive.
Il supporto limitato è disponibile per gRPC su HTTP/2 in .NET Framework. Altre versioni di .NET come UWP, Xamarin e Unity non hanno il supporto HTTP/2 necessario e devono usare invece gRPC-Web.
La tabella seguente elenca le implementazioni di .NET e il relativo supporto client gRPC:
Implementazione .NET | gRPC su HTTP/2 | gRPC-Web |
---|---|---|
.NET 5 o versione successiva | ✔️ | ✔️ |
.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 | ❌ | ✔️ |
Piattaforma UWP (Universal Windows Platform) 10.0.16299 | ❌ | ✔️ |
Unity 2018.1 | ❌ | ✔️ |
†.NET Framework richiede la configurazione di WinHttpHandler e Windows 11 o versione successiva, Windows Server 2019 o versione successiva. Per altre informazioni, vedere Effettuare chiamate gRPC in .NET Framework.
L'uso Grpc.Net.Client
di con gRPC-Web richiede una configurazione aggiuntiva. Per altre informazioni:
Importante
gRPC-Web richiede il client e il server per supportarlo. gRPC-Web può essere configurato rapidamente da un server ASP.NET Core gRPC. Altre implementazioni del server gRPC richiedono un proxy per supportare gRPC-Web.