다음을 통해 공유


.NET의 gRPC에 지원되는 플랫폼

작성자: James Newton-King

이 문서에서는 .NET로 gRPC를 사용하기 위한 요구 사항 및 지원되는 플랫폼에 대해 설명합니다. 두 가지 주요 gRPC 워크로드에는 서로 다른 요구 사항이 있습니다:

유선 형식

gRPC는 HTTP/2에서 사용할 수 있는 고급 기능을 활용합니다. HTTP/2는 모든 플랫폼에서 지원되지는 않지만 HTTP/1.1을 사용하는 2차 통신 형식은 gRPC에 사용할 수 있습니다.

  • application/grpc - HTTP/2를 통한 gRPC는 gRPC가 사용되는 일반적인 방법입니다.
  • application/grpc-web - gRPC-Web은 gRPC 프로토콜을 HTTP/1.1과 호환 가능하도록 수정합니다. gRPC-Web은 더 많은 장소에서 사용할 수 있습니다. gRPC-Web은 HTTP/2에 대한 완전한 지원 없이도 브라우저 앱 및 네트워크에서 사용할 수 있습니다. 고급 gRPC 기능 2개(클라이언트 스트리밍 및 양방향 스트리밍)는 더이상 지원되지 않습니다.

.NET의 gRPC는 두 가지 통신 형식을 지원하며, application/grpc는 기본적으로 사용됩니다. gRPC-Web은 성공적인 gRPC-Web 호출을 위해 클라이언트와 서버에서 구성해야 합니다. gRPC-Web 설정에 대한 자세한 내용은 ASP.NET Core gRPC 앱의 gRPC-Web을 참조하세요.

ASP.NET Core gRPC 서버 요구 사항

ASP.NET Core를 사용하여 gRPC 서비스를 호스팅하려면 .NET Core 3.x 이상이 필요합니다.

  • .NET 5 이상
  • .NET Core 3

ASP.NET Core gRPC 서비스는 .NET Core에서 지원하는 모든 운영 체제에서 호스팅될 수 있습니다.

  • Windows
  • Linux
  • macOS

지원되는 ASP.NET Core 서버

모든 기본 제공 ASP.NET Core 서버가 지원됩니다.

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

†.NET 5 및 Windows 11 빌드 22000 또는 Windows Server 2022 빌드 20348 이상을 필요합니다.

ASP.NET Core 서버가 gRPC를 실행하도록 구성하는 방법에 대한 자세한 내용은 ASP.NET Core를 사용하는 gRPC 서비스를 참조하세요.

Azure 서비스

†gRPC에는 Azure App Service의 Linux 기반 환경이 필요합니다. Azure App Service 배포 정보는 App Service .NET 6 gRPC 앱을 배포하는 방법을 참조하세요.

.NET gRPC 클라이언트 요구 사항

Grpc.Net.Client 패키지는 .NET Core 3 및 .NET 5 이상에서 HTTP/2를 통한 gRPC 호출을 지원합니다.

.NET Framework에서 HTTP/2를 통한 gRPC에 대한 제한된 지원이 제공됩니다. UWP, Xamarin 및 Unity와 같은 기타 .NET 버전에는 HTTP/2 지원이 필요하지 않으며 대신 gRPC-Web을 사용해야 합니다.

다음 표에서는 .NET 구현 및 해당 gRPC 클라이언트 지원을 보여줍니다.

.NET 구현 HTTP/2를 통한 gRPC gRPC-Web
.NET 5 이상 ✔️ ✔️
.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 ✔️
유니버설 Windows 플랫폼 10.0.16299 ✔️
Unity 2018.1 ✔️

†.NET Framework에는 Windows Server 2019 이상의 Windows 11 이상을 구성 WinHttpHandler 해야 합니다. 자세한 내용은 .NET Framework에서 gRPC 호출을 참조하세요.

gRPC-Web과 함께 사용 Grpc.Net.Client 하려면 추가 구성이 필요합니다. 자세한 내용은 다음에서 확인합니다.

Important

gRPC-Web을 지원하려면 클라이언트 서버가 필요합니다. gRPC-Web은 ASP.NET Core gRPC 서버에서 신속하게 구성할 수 있습니다. 다른 gRPC 서버 구현에는 gRPC-Web을 지원하는 프록시가 필요합니다.

추가 리소스