无法连接到部署在AWS ECS上的GRPC服务器

时间:2019-06-24 15:00:02

标签: amazon-web-services .net-core grpc

我有一个用C#编写的GRPC服务器。

internal class Program
    {
        internal static void Main(string[] args)
        {
            using (var waitHandle = new AutoResetEvent(false))
            {
                void OnConsoleOnCancelKeyPress(object o, ConsoleCancelEventArgs e)
                {
                    e.Cancel = true;

                    // ReSharper disable once AccessToDisposedClosure
                    waitHandle.Set();
                }

                Console.CancelKeyPress += OnConsoleOnCancelKeyPress;

                var config = new AppConfig(new ConfigurationBuilder()
                    .AddJsonFile("appsettings.json", false)
                    .Build());

                var containerBuilder = new ContainerBuilder();
                containerBuilder.RegisterModule(new Module());
                containerBuilder.RegisterModule(new Data.Module(config.Region, config.TablePrefix));

                using (var container = containerBuilder.Build())
                {
                    var buyRatesService = container.Resolve<BuyRatesService>();
                    var logger = container.Resolve<ILogger<Program>>();
                    var server = new Server
                    {
                        Services =
                        {
                            BuyRates.BindService(buyRatesService)
                        },
                        Ports = {new ServerPort("0.0.0.0", 50051, ServerCredentials.Insecure)}
                    };

                    try
                    {
                        server.Start();
                        logger.LogDebug("Service started");
                        waitHandle.WaitOne();
                    }
                    catch (Exception e)
                    {
                        logger.LogCritical("Application terminated unexpectedly. Exception {@exception}", e);
                    }
                    finally
                    {
                        server.ShutdownAsync().Wait();
                        Console.CancelKeyPress -= OnConsoleOnCancelKeyPress;
                    }
                }
            }
        }
    }

在本地运行良好。我将其部署到ecs instance(Docker)。容器端口为50051。使用ALB和Route 53。

当我尝试连接到someroute54uri.net:50051时出现错误 Grpc.Core.RpcException: Status(StatusCode=Unavailable, Detail="Connect Failed")

如果我尝试连接到someroute54uri.net时出现错误 Grpc.Core.RpcException: Status(StatusCode=Unavailable, Detail="Trying to connect an http1.x server")

谢谢!。

请让我知道是否有其他信息有助于解决该问题。

0 个答案:

没有答案