Azure Web App服务现在支持gRPC**,但仅支持基于Linux的Web App**。 这里是the official documentation如何设置它。 基本上,您只需要配置您的应用以打开支持HTTP 2的端口。在.NET Kestrel中,您可以这样做(在下面的示例中,它位于端口8585中):
// Configure Kestrel to listen on a specific HTTP port
builder.WebHost.ConfigureKestrel(options =>
{
options.ListenAnyIP(8080);
options.ListenAnyIP(8585, listenOptions =>
{
listenOptions.Protocols = Microsoft.AspNetCore.Server.Kestrel.Core.HttpProtocols.Http2;
});
});
5条答案
按热度按时间5cnsuln71#
Azure Web App服务现在支持gRPC**,但仅支持基于Linux的Web App**。
这里是the official documentation如何设置它。
基本上,您只需要配置您的应用以打开支持HTTP 2的端口。在.NET Kestrel中,您可以这样做(在下面的示例中,它位于端口8585中):
**2022年11月更新:对于.NET 7,请跳过这一步!**您的Web应用程序甚至不会从这段
ConfigureKestrel
代码开始。不知何故,没有它,它也能神奇地工作。2022年11月更新:.NET 7仍需执行以下步骤
然后,您需要在Web应用程序中配置HTTP版本和代理
然后,您需要添加指向端口8585的环境变量
我可以确认gRPC已经在西欧地区工作。
7fhtutme2#
根据开发者的使用习惯,我不推荐使用gRPC。具体的细节,你可以参考下面的用户反馈和我拍的一些截图。
您可以先阅读这篇文章。
SIGNALR VS GRPC ON ASP.NET CORE – WHICH ONE TO CHOOSE
当前状态:
2. Azure SignalR Service(Official recommendation)(第二个字符)
开发人员反馈:
gRpc support in Azure App Service
图1。
图2。
图3。
指令集
图4。
r55awzrz3#
截至目前(2021年12月),该问题仍处于开放状态(自2019年4月起)https://github.com/dotnet/aspnetcore/issues/9020
Azure应用服务使用IIS/Windows/Http.sys。Http.sys已集成到操作系统中,不完全支持gRPC所依赖的HTTP/2尾随标头。
bvuwiixz4#
解决了这个问题。最后使用了Dapr,一个微服务构建包。到目前为止,它非常棒,并且内置了GRPC支持
qlfbtfca5#
微软刚刚宣布将开始在Azure应用服务https://azure.github.io/AppService/2022/05/23/gRPC-support-on-App-Service.html上支持gRPC