我有 GRPC 应用程序,它是我从 Visual Studio 创建并部署到 azure 应用程序服务的。 操作系统#Linux Azure 服务计划是 # S1
在应用程序设置选项卡上,将以下应用程序设置添加到您的应用程序: 名称 = HTTP20_ONLY_PORT 值=8585
当我们尝试使用 azure 应用服务 URL 从 post mane 运行时 #
我们无法连接 GRPC。
我使用了这个文档中的代码。
创建 gRPC Web 应用程序后,将其部署到 Azure 应用服务。我可以在 Postman 中看到输出。
程序.cs:
using GrpcService2.Services;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddGrpc();
var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.MapGet("/", () => "To communicate with gRPC, use the client.");
app.Run();
GreeterService.cs:
using Grpc.Core;
using GrpcService2;
namespace GrpcService2.Services
{
public class GreeterService : Greeter.GreeterBase
{
private readonly ILogger<GreeterService> _logger;
public GreeterService(ILogger<GreeterService> logger)
{
_logger = logger;
}
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
{
return Task.FromResult(new HelloReply
{
Message = "Hello " + request.Name
});
}
}
}
greet.proto:
syntax = "proto3";
option csharp_namespace = "GrpcService2";
package greet;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
运行 gRPC 应用程序后,我复制了以下 HTTPS URL,因为它是安全连接。
我通过单击 Postman 中的锁定符号来启用 TLS,如下所示。
在 Azure Web App 的环境变量和应用程序设置下,我设置以下值:
Name=HTTP20_ONLY_PORT Value=5243
如下图。
确保您的价值观如下:
我通过 Visual Studio 成功将应用程序部署到 Azure。
Azure Web App URL 是安全连接,因此您需要启用 TLS,如下所示。
输出: