.NET tarafından desteklenen platformlarda gRPC
Yayınlayan James Newton-King
Bu makalede gRPC'yi .NET ile kullanmaya yönelik gereksinimler ve desteklenen platformlar ele alınmaktadır. İki ana gRPC iş yükü için farklı gereksinimler vardır:
Tel biçimler
gRPC, HTTP/2'de bulunan gelişmiş özelliklerden yararlanır. HTTP/2 her yerde desteklenmez, ancak gRPC için HTTP/1.1 kullanan ikinci bir kablo biçimi kullanılabilir:
application/grpc
- HTTP/2 üzerinden gRPC genellikle gRPC'nin nasıl kullanıldığıdır.application/grpc-web
- gRPC-Web, gRPC protokolunu HTTP/1.1 ile uyumlu olacak şekilde değiştirir. gRPC-Web daha fazla yerde kullanılabilir. gRPC-Web, tarayıcı uygulamaları tarafından ve HTTP/2 için tam destek olmadan ağlarda kullanılabilir. İki gelişmiş gRPC özelliği artık desteklenmiyor: istemci akışı ve çift yönlü akış.
.NET üzerinde gRPC her iki kablo biçimlerini de destekler. application/grpc
varsayılan olarak kullanılır. gRPC-Web, başarılı gRPC-Web çağrıları için istemcide ve sunucuda yapılandırılmalıdır. gRPC-Web'i ayarlama hakkında bilgi için bkz . ASP.NET Core gRPC uygulamalarında gRPC-Web.
ASP.NET Core gRPC sunucu gereksinimleri
gRPC hizmetlerini ASP.NET Core ile barındırmak için .NET Core 3.x veya üzeri gerekir.
- .NET 5 veya üzeri
- .NET Core 3
ASP.NET Core gRPC hizmetleri .NET Core'un desteklediği tüm işletim sistemlerinde barındırılabilir.
- Windows
- Linux
- macOS
- Windows
- Linux
- macOS†
†macOS, HTTPS ile ASP.NET Core uygulamalarını barındırmayı desteklemez.
Desteklenen ASP.NET Çekirdek sunucuları
Tüm yerleşik ASP.NET Core sunucuları desteklenir.
- Kestrel
- TestServer
- IIS†
- HTTP.sys†
†.NET 5 ve Windows 11 Derleme 22000 veya Windows Server 2022 Derleme 20348 veya sonraki sürümlerini alır.
ASP.NET Core sunucularını gRPC çalıştıracak şekilde yapılandırma hakkında bilgi için bkz . ASP.NET Core ile gRPC hizmetleri.
Azure hizmetleri
†gRPC, Azure Uygulaması Hizmeti üzerinde Linux tabanlı bir ortam gerektirir. Azure Uygulaması Hizmeti dağıtım bilgileri için bkz. App Service'te .NET 6 gRPC uygulamasını dağıtma.
.NET gRPC istemci gereksinimleri
Grpc.Net.Client paketi.NET Core 3 ve .NET 5 veya sonraki sürümlerde HTTP/2 üzerinden gRPC çağrılarını destekler.
.NET Framework'te HTTP/2 üzerinden gRPC için sınırlı destek sağlanır. UWP, Xamarin ve Unity gibi diğer .NET sürümlerinde HTTP/2 desteği gerekmez ve bunun yerine gRPC-Web kullanılmalıdır.
Aşağıdaki tabloda .NET uygulamaları ve bunların gRPC istemci desteği listelenir:
.NET uygulaması | HTTP/2 üzerinden gRPC | gRPC-Web |
---|---|---|
.NET 5 veya üzeri | ✔️ | ✔️ |
.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 | ❌ | ✔️ |
Evrensel Windows Platformu 10.0.16299 | ❌ | ✔️ |
Unity 2018.1 | ❌ | ✔️ |
†.NET Framework, ve Windows 11 veya üzeri, Windows Server 2019 veya üzerinin WinHttpHandler yapılandırılması gerektirir. Daha fazla bilgi için bkz . .NET Framework'te gRPC çağrıları yapma.
gRPC-Web ile kullanmak Grpc.Net.Client
için ek yapılandırma gerekir. Daha fazla bilgi için:
Önemli
gRPC-Web, istemcinin ve sunucunun bunu desteklemesini gerektirir. gRPC-Web, ASP.NET Core gRPC sunucusu tarafından hızla yapılandırılabilir. Diğer gRPC sunucu uygulamaları, gRPC-Web'i desteklemek için bir ara sunucu gerektirir.
Ek kaynaklar
ASP.NET Core
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin