Udostępnij za pośrednictwem


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.

Ostrzeżenie

Ta wersja ASP.NET Core nie jest już obsługiwana. Aby uzyskać więcej informacji, zobacz zasady pomocy technicznej platformy .NET i platformy .NET Core. 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

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:

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.

Dodatkowe zasoby