using Grpc.Core; using ServicesCloudConfig; using System; using System.Threading; using System.Threading.Tasks; namespace server { class Program { const int secureport = 8443; const int insecureport = 50051; private static readonly AutoResetEvent _closingEvent = new AutoResetEvent(false); static void Main(string[] args) { /*var keyCertPair = new KeyCertificatePair(File.ReadAllText(@"server.pem"), File.ReadAllText(@"server.key")); SslServerCredentials serverCredentials = new SslServerCredentials(new[] { keyCertPair }, File.ReadAllText(@"ca.pem"), false);*/ var rootCert = File.ReadAllText(@"ca.pem"); var keyCertPair = new KeyCertificatePair( File.ReadAllText(@"server.pem"), File.ReadAllText(@"server.key")); var serverCredentials = new SslServerCredentials(new[] { keyCertPair }, rootCert, false); //var clientCredentials = new SslCredentials(rootCert, keyCertPair); Server server = null; try { server = new Server() { Services = { servicesCloudConfigService.BindService(new IServicesCloudConfig()) }, //Ports = { new ServerPort("0.0.0.0", secureport, serverCredentials), new ServerPort("0.0.0.0", insecureport, ServerCredentials.Insecure) } Ports = { { "0.0.0.0", secureport, serverCredentials }, { "0.0.0.0", insecureport, ServerCredentials.Insecure} } }; server.Start(); Console.WriteLine("El servidor esta escuchando por el puerto seguro: " + secureport); Console.WriteLine("El servidor esta escuchando por el puerto ineguro: " + insecureport); Task.Factory.StartNew(() => { while (true) { Thread.Sleep(1000); } }); Console.CancelKeyPress += ((s, a) => { Console.WriteLine("Bye!"); _closingEvent.Set(); }); _closingEvent.WaitOne(); } catch (IOException e) { Console.WriteLine("Falla al levantar servicio: " + e.Message); throw; } finally { if (server != null) { server.ShutdownAsync().Wait(); } } } } }