gRPC auf .NET-unterstützten Plattformen
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
- Windows
- Linux
- macOS†
†macOS unterstützt das Hosting von ASP.NET Core-Apps mit HTTPS nicht.
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:
- Konfigurieren von gRPC-Web mit dem .NET gRPC-Client
- Verwenden des gRPC-Clients mit .NET Standard 2.0
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
ASP.NET Core
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für