.NET での gRPC でサポートされているプラットフォーム

作成者: James Newton-King

この記事では、.NET で gRPC を使用するための要件と、サポートされているプラットフォームについて説明します。 次の 2 つの主な gRPC ワークロードにはさまざまな要件があります。

ワイヤ形式

gRPC では、HTTP/2 で利用できる高度な機能が活用されます。 HTTP/2 はどこでもサポートされているわけではありませんが、gRPC では、HTTP/1.1 を使用した 2 番目のワイヤ形式を利用できます。

  • application/grpc - HTTP/2 による gRPC は、一般的な gRPC の使用方法です。
  • application/grpc-web - gRPC-Web では、HTTP/1.1 と互換性を持つように gRPC プロトコルが変更されます。 gRPC-Web はより多くの場所で使用できます。 gRPC-Web は、HTTP/2 を完全にサポートしていなくても、ブラウザー アプリやネットワークで使用できます。 2 つの高度な gRPC 機能がサポートされなくなりました。クライアント ストリーミングと双方向ストリーミングです。

.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 以降が必要です。

gRPC を実行するために ASP.NET Core サーバーを構成する方法については、「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 では gRPC over HTTP/2 に制限付きサポートを利用できます。 UWP、Xamarin、Unity などのその他の .NET バージョンには必要な HTTP/2 サポートはなく、gRPC-Web を使用する必要があります。

次の表に、.NET の実装と、その gRPC クライアントのサポートを示します。

.NET 実装 gRPC over HTTP/2 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 には、WinHttpHandler の構成と Windows 11 以降、Windows Server 2019 以降が必要です。 詳細については、「.NET Framework で gRPC 呼び出しを行う」を参照してください。

gRPC-Web で Grpc.Net.Client を使用するには、追加の構成が必要です。 詳細情報

重要

gRPC-Web をサポートするには、クライアント "" サーバーが必要です。gRPC-Web は、ASP.NET Core gRPC サーバーによって迅速に構成できます。 その他の gRPC サーバー実装では、gRPC-Web をサポートするためにプロキシが必要です。

その他のリソース