gRPC na platformach obsługiwanych przez platformę .NET
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Autor: James Newton-King
W tym artykule omówiono wymagania i obsługiwane platformy do korzystania z usługi gRPC na platformie .NET. Istnieją różne wymagania dotyczące dwóch głównych obciążeń gRPC:
Formaty przewodów
Usługa gRPC korzysta z zaawansowanych funkcji dostępnych w protokole HTTP/2. Protokół HTTP/2 nie jest obsługiwany wszędzie, ale drugi format przewodu przy użyciu protokołu HTTP/1.1 jest dostępny dla usługi gRPC:
application/grpc
- gRPC przez HTTP/2 jest sposób, w jaki gRPC jest zwykle używany.application/grpc-web
- gRPC-Web modyfikuje protokół gRPC tak, aby był zgodny z protokołem HTTP/1.1. GRPC-Web może być używany w większej ilości miejsc. Usługa gRPC-Web może być używana przez aplikacje przeglądarki i w sieciach bez pełnej obsługi protokołu HTTP/2. Dwie zaawansowane funkcje gRPC nie są już obsługiwane: przesyłanie strumieniowe klienta i przesyłanie strumieniowe dwukierunkowe.
gRPC na platformie .NET obsługuje oba formaty przewodów. application/grpc
jest używany domyślnie. GRPC-Web musi być skonfigurowany na kliencie i serwerze pod kątem pomyślnych wywołań gRPC-Web. Aby uzyskać informacje na temat konfigurowania gRPC-Web, zobacz gRPC-Web w aplikacjach gRPC core ASP.NET Core.
Wymagania dotyczące serwera gRPC platformy ASP.NET Core
Hostowanie usług gRPC za pomocą platformy ASP.NET Core wymaga platformy .NET Core 3.x lub nowszej.
- .NET 5 lub nowszy
- .NET Core 3
ASP.NET Core usługi gRPC mogą być hostowane we wszystkich systemach operacyjnych obsługiwanych przez platformę .NET Core.
- Windows
- Linux
- macOS
- Windows
- Linux
- macOS†
†macOS nie obsługuje hostowania aplikacji ASP.NET Core przy użyciu protokołu HTTPS.
Obsługiwane serwery ASP.NET Core
Obsługiwane są wszystkie wbudowane serwery ASP.NET Core.
- Kestrel
- TestServer
- USŁUGI IIS†
- HTTP.sys†
†Wymaga programu .NET 5 i Windows 11 Build 22000 lub Windows Server 2022 Build 20348 lub nowszego.
Aby uzyskać informacje na temat konfigurowania serwerów ASP.NET Core do uruchamiania gRPC, zobacz usługi gRPC z ASP.NET Core.
Usługi platformy Azure
†gRPC wymaga środowiska opartego na systemie Linux w usłudze aplikacja systemu Azure Service. Zobacz How-to deploy a .NET 6 gRPC app on App Service for aplikacja systemu Azure Service deployment information (Jak wdrożyć aplikację gRPC platformy .NET 6 w usłudze App Service), aby uzyskać informacje o wdrożeniu usługi aplikacja systemu Azure Service.
Wymagania klienta gRPC platformy .NET
Pakiet Grpc.Net.Client obsługuje wywołania gRPC za pośrednictwem protokołu HTTP/2 na platformie .NET Core 3 i .NET 5 lub nowszym.
Ograniczona obsługa jest dostępna dla gRPC za pośrednictwem protokołu HTTP/2 w programie .NET Framework. Inne wersje platformy .NET, takie jak UWP, Xamarin i Unity, nie mają wymaganej obsługi protokołu HTTP/2 i muszą zamiast tego używać biblioteki gRPC-Web.
W poniższej tabeli wymieniono implementacje platformy .NET i ich obsługę klienta gRPC:
Implementacja platformy .NET | gRPC za pośrednictwem protokołu HTTP/2 | gRPC-Web |
---|---|---|
.NET 5 lub nowszy | ✔️ | ✔️ |
.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 | ❌ | ✔️ |
platforma uniwersalna systemu Windows 10.0.16299 | ❌ | ✔️ |
Unity 2018.1 | ❌ | ✔️ |
program †.NET Framework wymaga konfiguracji systemu Windows 11 lub nowszego WinHttpHandler , Windows Server 2019 lub nowszego. Aby uzyskać więcej informacji, zobacz Make gRPC calls on .NET Framework (Nawiązywanie wywołań gRPC w programie .NET Framework).
Używanie z Grpc.Net.Client
usługą gRPC-Web wymaga dodatkowej konfiguracji. Więcej informacji:
- Konfigurowanie usługi gRPC-Web przy użyciu klienta gRPC platformy .NET
- Używanie klienta gRPC z platformą .NET Standard 2.0
Ważne
gRPC-Web wymaga, aby klient i serwer go obsługiwał. Serwer gRPC-Web można szybko skonfigurować przez serwer gRPC ASP.NET Core gRPC. Inne implementacje serwera gRPC wymagają serwera proxy do obsługi gRPC-Web.