.NET'de desteklenen platformlarda gRPC
James Newton-King
Bu makalede gRPC'yi .NET ile kullanmaya yönelik gereksinimler ve desteklenen platformlar ele alındı. İki ana gRPC iş yükü için farklı gereksinimler vardır:
Kablo biçimleri
gRPC, HTTP/2'de bulunan gelişmiş özelliklerden faydalanıyor. HTTP/2 her yerde desteklenmiyor, ancak gRPC için HTTP/1.1 kullanan ikinci bir kablo biçimi kullanılabilir:
application/grpc- HTTP/2 üzerinden gRPC normalde gRPC'nin nasıl kullanılır?application/grpc-web- gRPC-Web, gRPC protokolünü HTTP/1.1 ile uyumlu olacak şekilde değiştiren. gRPC-Web daha fazla yerde kullanılabilir. gRPC-Web, http/2 desteği olmadan tarayıcı uygulamaları ve 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. başarılı gRPC-Web çağrıları için istemcide ve sunucuda gRPC-Web yapılandırıldı. gRPC-Web'i ayarlama hakkında bilgi için bkz. Tarayıcı uygulamalarında gRPC kullanma .
ASP.NET Core gRPC sunucu gereksinimleri
gRPC hizmetlerini ASP.NET Core .NET Core 3.x veya sonraki bir güncelleştirmesi gerekir.
- .NET 5 veya sonraki bir
- .NET Core 3
ASP.NET Core gRPC hizmetleri .NET Core'ın desteklediği tüm işletim sistemlerinde barındırabilirsiniz.
- Windows
- Linux
- macOS†
†macOS, HTTPS ile ASP.NET Core barındırmayı desteklemez.
Desteklenen ASP.NET Core sunucuları
Tüm yerleşik ASP.NET Core sunucuları de destekler.
- Kestrel
- TestServer
- IIS†
- HTTP.sys‡
†IIS için .NET 5 ve Windows 10 20300.1000 veya sonraki bir derleme gerekir.
‡HTTP.sys .NET 5 ve Windows 10 Build 19529 veya sonraki bir güncelleştirmesi gerekir.
Önceki Windows 10 Derleme sürümleri, bir Windows Insider derlemesi gerektirir.
gRPC çalıştırmak için ASP.NET Core sunucuları yapılandırma hakkında bilgi için, ASP.NET Core içeren gRPC Hizmetleri bkz. .
Azure hizmetleri
†Azure App Service HTTP/2 üzerinden gRPC barındırmayı desteklemez. gRPC-Web uyumlu bir alternatiftir.
Azure App Service'da HTTP/2 ile gRPC desteğini geliştirmek için Azure App Service. Daha fazla bilgi için bu soruna GitHub bakın.
.NET gRPC istemci gereksinimleri
Grpc.Net.Client paketi, .NET Core 3 ve .NET 5 veya sonraki bir üzerinde HTTP/2 üzerinden gRPC çağrılarını destekler.
Http/2 üzerinden gRPC için sınırlı destek .NET Framework. UWP, Xamarin ve Unity gibi diğer .NET sürümlerinde HTTP/2 desteği gerekmez ve bunun yerine gRPC-Web'i kullanmaları gerekir.
Aşağıdaki tabloda .NET uygulamaları ve bunların gRPC istemci desteği liste almaktadır:
| .NET uygulaması | HTTP/2 üzerinden gRPC | gRPC-Web |
|---|---|---|
| .NET 5 veya sonraki bir | ✔️ | ✔️ |
| .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 | ❌ | ✔️ |
| Universal Windows Platform 10.0.16299 | ❌ | ✔️ |
| Unity 2018.1 | ❌ | ✔️ |
†.NET Framework derlemenin yapılandırılması ve Windows 10 19622 veya sonraki bir yıl içinde WinHttpHandler yapılandırılması gerekir. Bu, Windows Insider derlemesi kullanımını gerekli olabilir.
Ağlarda Grpc.Net.Client .NET Framework gRPC-Web ile kullanmak için ek yapılandırma gerekir. Daha fazla bilgi için bkz. .NET Standard 2.0 ile gRPC istemcisini kullanma.