.NET での gRPC でサポートされているプラットフォーム
Note
これは、この記事の最新バージョンではありません。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。
警告
このバージョンの ASP.NET Core はサポート対象から除外されました。 詳細については、「.NET および .NET Core サポート ポリシー」を参照してください。 現在のリリースについては、この記事の .NET 8 バージョンを参照してください。
重要
この情報はリリース前の製品に関する事項であり、正式版がリリースされるまでに大幅に変更される可能性があります。 Microsoft はここに示されている情報について、明示か黙示かを問わず、一切保証しません。
現在のリリースについては、この記事の .NET 8 バージョンを参照してください。
作成者: 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
- 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 をサポートするためにプロキシが必要です。
その他のリソース
ASP.NET Core