ASP.NET Core: gRPC trên nền tảng hỗ trợ .NET
Trong bài viết này
- Định dạng dây (wire)
- Yêu cầu máy chủ gRPC ASP.NET Core
- Yêu cầu của máy khách .NET gRPC
- Tài nguyên bổ sung
Bài viết này thảo luận về các yêu cầu và nền tảng được hỗ trợ để sử dụng gRPC với .NET. Có các yêu cầu khác nhau đối với hai khối lượng công việc gRPC chính:
Định dạng dây (wire)
gRPC tận dụng các tính năng nâng cao có sẵn trong HTTP/2. HTTP/2 không được hỗ trợ ở mọi nơi, nhưng định dạng dây thứ hai sử dụng HTTP/1.1 có sẵn cho gRPC:
- application/grpc- gRPC qua HTTP/2 là cách gRPC thường được sử dụng.
- application/grpc-web- gRPC-Web sửa đổi giao thức gRPC để tương thích với HTTP/1.1. gRPC-Web có thể được sử dụng ở nhiều nơi hơn. gRPC-Web có thể được sử dụng bởi các ứng dụng trình duyệt và trong mạng mà không cần hỗ trợ đầy đủ cho HTTP/2. Hai tính năng gRPC nâng cao không còn được hỗ trợ: Trình phát máy khách và trình phát hai chiều.
gRPC trên .NET hỗ trợ cả hai định dạng dây. application/grpc
được sử dụng theo mặc định. gRPC-Web phải được định cấu hình trên máy khách và máy chủ để có thể gọi gRPC-Web thành công. Để biết thông tin về cách thiết lập gRPC-Web, hãy xem gRPC-Web trong ứng dụng gRPC ASP.NET Core.
Yêu cầu máy chủ gRPC ASP.NET Core
Lưu trữ các dịch vụ gRPC với ASP.NET Core yêu cầu .NET Core 3.x trở lên.
- .NET 5 trở lên
- .NET Core 3
Các dịch vụ gRPC của ASP.NET Core có thể được lưu trữ trên tất cả hệ điều hành mà .NET Core hỗ trợ.
- Windows
- Linux
- macOS†
† macOS không hỗ trợ lưu trữ ứng dụng ASP.NET Core với HTTPS.
Máy chủ ASP.NET Core được hỗ trợ
Tất cả các máy chủ ASP.NET Core tích hợp đều được hỗ trợ.
- Kestrel
- TestServer
- IIS†
- HTTP.sys†
†Yêu cầu .NET 5 và Windows 11 Build 22000 hoặc Windows Server 2022 Build 20348 trở lên.
Để biết thông tin về cách định cấu hình máy chủ ASP.NET Core để chạy gRPC, hãy xem dịch vụ gRPC với ASP.NET Core.
Dịch vụ Azure
†gRPC yêu cầu môi trường dựa trên Linux trên Dịch vụ ứng dụng Azure. Xem Cách triển khai ứng dụng .NET 6 gRPC trên Dịch vụ ứng dụng để biết thông tin triển khai Dịch vụ ứng dụng Azure.
Yêu cầu của máy khách .NET gRPC
Gói Grpc.Net.Client hỗ trợ các lệnh gọi gRPC qua HTTP/2 trên .NET Core 3 và .NET 5 trở lên.
Hỗ trợ hạn chế có sẵn cho gRPC qua HTTP/2 trên .NET Framework. Các phiên bản .NET khác như UWP, Xamarin và Unity không yêu cầu hỗ trợ HTTP/2 và thay vào đó phải sử dụng gRPC-Web.
Bảng sau liệt kê các triển khai .NET và hỗ trợ máy khách gRPC của chúng:
Triển khai .NET | gRPC qua HTTP/2 | gRPC-Web |
---|---|---|
.NET 5 trở lên | ✔️ | ✔️ |
.NET Core 3 | ✔️ | ✔️ |
.NET Core 2.1 | ❌ | ✔️ |
.NET Framework 4.6.1 | ⚠️† | ✔️ |
Blazor WebAssembly | ❌ | ✔️ |
Đơn sắc 5.4 | ❌ | ✔️ |
Xamarin.iOS 10.14 | ❌ | ✔️ |
Xamarin.Android 8.0 | ❌ | ✔️ |
Nền tảng Windows phổ quát 10.0.16299 | ❌ | ✔️ |
Đoàn kết 2018.1 | ❌ | ✔️ |
†.NET Framework yêu cầu cấu hình WinHttpHandler và Windows 11 trở lên, Windows Server 2022 trở lên. Để biết thêm thông tin, hãy xem Thực hiện lời gọi gRPC trên .NET Framework.
Sử dụng Grpc.Net.Client
với gRPC-Web yêu cầu cấu hình bổ sung. Để biết thêm thông tin:
Quan trọng
gRPC-Web yêu cầu máy khách và máy chủ hỗ trợ nó. gRPC-Web có thể được cấu hình nhanh chóng bởi máy chủ gRPC ASP.NET Core. Việc triển khai máy chủ gRPC khác yêu cầu proxy để hỗ trợ gRPC-Web.