Aracılığıyla paylaş


.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