Freigeben über


gRPC auf .NET-unterstützten Plattformen

Hinweis

Dies ist nicht die neueste Version dieses Artikels. Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.

Warnung

Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der Supportrichtlinie für .NET und .NET Core. Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.

Wichtig

Diese Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Freigabe möglicherweise noch wesentlichen Änderungen unterliegt. Microsoft gibt keine Garantie, weder ausdrücklich noch impliziert, hinsichtlich der hier bereitgestellten Informationen.

Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.

Von James Newton-King

In diesem Artikel werden die Anforderungen und unterstützten Plattformen für die Verwendung von gRPC mit .NET erläutert. Es gibt unterschiedliche Anforderungen an die beiden gRPC-Hauptworkloads:

Transportformate

gRPC nutzt die in HTTP/2 verfügbaren erweiterten Features. HTTP/2 wird nicht überall unterstützt, aber ein zweites Übertragungsformat unter Verwendung von HTTP/1.1 ist für gRPC verfügbar:

  • application/grpc: gRPC über HTTP/2 ist die übliche Verwendung von gRPC.
  • application/grpc-web: gRPC-Web ändert das gRPC-Protokoll so, dass es mit HTTP/1.1 kompatibel ist. Die Einsatzmöglichkeiten von gRPC-Web sind größer. gRPC-Web kann von Browser-Apps und in Netzwerken ohne vollständige Unterstützung für HTTP/2 verwendet werden. Zwei erweiterte gRPC-Funktionen werden nicht mehr unterstützt: Clientstreaming und bidirektionales Streaming.

gRPC auf .NET unterstützt beide Übertragungsformate. application/grpc wird standardmäßig verwendet. gRPC-Web muss auf dem Client und dem Server für erfolgreiche gRPC-Webaufrufe konfiguriert werden. Informationen zum Einrichten von gRPC-Web finden Sie unter gRPC-Web in ASP.NET Core gRPC-Apps.

ASP.NET Core gRPC-Serveranforderungen

Für das Hosting von gRPC-Diensten mit ASP.NET Core ist .NET Core 3.x oder höher erforderlich.

  • .NET 5 oder höher
  • .NET Core 3

ASP.NET Core gRPC-Dienste können unter allen Betriebssystemen gehostet werden, die von .NET Core unterstützt werden.

  • Windows
  • Linux
  • macOS

Unterstützte ASP.NET Core-Server

Alle integrierten ASP.NET Core-Server werden unterstützt.

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

†Erfordert .NET 5 und Windows 11 Build 22000 oder Windows Server 2022 Build 20348 oder höher.

Informationen zum Konfigurieren von ASP.NET Core-Servern zum Ausführen von gRPC finden Sie unter gRPC-Dienste mit ASP.NET Core.

Azure-Dienste

†gRPC erfordert eine Linux-basierte Umgebung in Azure App Service. Azure App Service-Bereitstellungsinformationen finden Sie unter Bereitstellen einer .NET 6 gRPC-App in App Service.

.NET gRPC-Clientanforderungen

Das GrpC.Net.Client-Paket unterstützt gRPC-Aufrufe über HTTP/2 unter .NET Core 3 und .NET 5 oder höher.

Eingeschränkte Unterstützung ist für gRPC über HTTP/2 unter .NET Framework verfügbar. Andere .NET-Versionen (z. B. UWP, Xamarin und Unity) verfügen nicht über die erforderliche HTTP/2-Unterstützung und müssen stattdessen gRPC-Web verwenden.

In der folgenden Tabelle werden .NET-Implementierungen und deren gRPC-Clientunterstützung aufgeführt:

.NET-Implementierung gRPC über HTTP/2 gRPC-Web
.NET 5 oder höher ✔️ ✔️
.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 ✔️
Universelle Windows-Plattform 10.0.16299 ✔️
Unity 2018.1 ✔️

†.NET Framework erfordert die Konfiguration von WinHttpHandler und Windows 11 oder höher, Windows Server 2019 oder höher. Weitere Informationen finden Sie unter Führen von gRPC-Aufrufen auf .NET Framework.

Die Verwendung von Grpc.Net.Client mit gRPC-Web erfordert zusätzliche Konfiguration. Weitere Informationen finden Sie unter:

Wichtig

gRPC-Web setzt die Unterstützung durch Client und Server voraus. gRPC-Web kann schnell von einem ASP.NET Core gRPC-Server konfiguriert werden. Andere gRPC-Serverimplementierungen erfordern einen Proxy zur Unterstützung von gRPC-Web.

Zusätzliche Ressourcen