Exemple #1
0
        public static void Main(string[] args)
        {
            //CreateHostBuilder(args).Build().Run();
            _logger = LogManager.GetCurrentClassLogger();

            try
            {
                IWebHost host = CreateWebHost(args);

                host.Start();

                #region Services

                var connectionService   = (IConnectionService)host.Services.GetService(typeof(IConnectionService));
                var typeEvaluateService = (IUITypeEvaluateService)host.Services.GetService(typeof(IUITypeEvaluateService));

                connectionService.ScheduleConnectionInitialize(TimeSpan.FromSeconds(5), "UI_Blazor"); //initialize connection without user input
                typeEvaluateService.Initialize();

                #endregion

                host.WaitForShutdown();
            }
            catch (Exception ex)
            {
                _logger.Error("Something goes wrong", ex);
            }
            finally
            {
                LogManager.Shutdown();
            }
        }
Exemple #2
0
        public static int Main(string[] args)
        {
            GCSettings.LatencyMode = GCLatencyMode.SustainedLowLatency;

            try
            {
                IWebHost host = InitializationWorker.Run(args.Length == 0 ? null :  args[0]).Result;
                Console.WriteLine("Initialization Finished");
                Collect(true);

                WarmUpWorker.Run();

                Collect(true);
                Collect(true);
                Collect(true);

                //Stats.Print();
                UnsafeStringContainer.PrintUsage();
                host.WaitForShutdown();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(-1);
            }

            Console.WriteLine("Application exited");
            return(0);
        }
Exemple #3
0
        public static void Main(string[] args)
        {
            IWebHost apiHost = ApiHostBuilder.Build();

            apiHost.Start();
            apiHost.WaitForShutdown();
        }
        public static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                PipeServerName = args[0];
                Console.WriteLine("Pipe server: {0}", PipeServerName);
            }

            using (IWebHost host = CreateWebHostBuilder(args).Build())
            {
                host.Start();

                using (var client = new HttpClient())
                {
                    string url = $"http://localhost:5000";
                    Console.WriteLine($"Starting request to {url}");
                    try
                    {
                        HttpResponseMessage response = client.GetAsync(url).GetAwaiter().GetResult();
                    }
                    catch (HttpRequestException ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }

                host.WaitForShutdown();
            }
        }
Exemple #5
0
        public static void Main(string[] args)
        {
            Heartbeat.Instance.InitHeartbeat("Products REST-API");
            Heartbeat.Instance.Start();


            Messenger.CreateInstance("Products", makeVerbose: true);
            Messenger.Instance.SetupListener <List <ProductUpdate> >((List <ProductUpdate> updates) =>
            {
                foreach (ProductUpdate productUpdate in updates)
                {
                    SQL_Interface.Instance.ReduceItemQuantity(productUpdate);
                }
            },
                                                                     Messenger.MessageType.ProductUpdates);

            try
            {
                IWebHost host = CreateWebHostBuilder(args).Build();
                host.RunAsync();
                host.WaitForShutdown();;
            }
            finally
            {
                Messenger.DisposeInstance();
            }
        }
Exemple #6
0
        public static void Main(string[] args)
        {
            //LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration("", true);

            _logger = LogManager.GetCurrentClassLogger();

            try
            {
                IWebHost host = CreateWebHost(args);

                host.Start();

                #region Services

                var connectionService = (IConnectionService)host.Services.GetService(typeof(IConnectionService));
                connectionService.ScheduleConnectionInitialize(TimeSpan.FromSeconds(5), "Controller"); //initialize connection without user input

                #endregion

                host.WaitForShutdown();
            }
            catch (Exception ex)
            {
                _logger.Error("Something goes wrong", ex);
            }
            finally
            {
                LogManager.Shutdown();
            }

            //CreateWebHost(args).Build().Run();
        }
        public void Run()
        {
            StartWebHost();

            try
            {
                _stopwatch.Restart();
                _webHost.WaitForShutdown();
                _stopwatch.Stop();
                _logger.Warning("{ApplicationName} stopped after {ElapsedMs}ms", _serviceName, _stopwatch.ElapsedMilliseconds);
            }
            catch (Exception ex)
            {
                if (_stopwatch.IsRunning)
                {
                    _stopwatch.Stop();
                }

                _logger.Fatal(ex, "{ApplicationName} stopped unexpectedly after {ElapsedMs}ms", _serviceName, _stopwatch.ElapsedMilliseconds);
                throw;
            }
            finally
            {
                Log.CloseAndFlush();
            }
        }
        private void RunWebHost()
        {
            try
            {
                _logger.Info($"{nameof(AspNetHttp)}.{nameof(RunWebHost)}",
                             new LogItem("Event", "Building ASP.NET Web Host"));
                _webHost = CreateWebHostBuilder().Build();
                _webHost.Start();

                foreach (var address in _webHost.ServerFeatures.Get <IServerAddressesFeature>().Addresses)
                {
                    var url = new Uri(address);
                    _logger.Info($"{nameof(AspNetHttp)}.{nameof(RunWebHost)}",
                                 new LogItem("Event", "WebHost started"), new LogItem("Url", url.ToString()));
                }

                _webHost.WaitForShutdown();
            }
            catch (Exception e)
            {
                _logger.Fatal($"{nameof(AspNetHttp)}.{nameof(RunWebHost)}",
                              new LogItem("Event", "Unhandled exception"),
                              new LogItem("Exception", e.Message),
                              new LogItem("StackTrace", e.StackTrace));
            }
        }
        public void WaitForShutdown()
        {
            while (host == null)
            {
                Thread.Sleep(100);
            }

            host.WaitForShutdown();
        }
Exemple #10
0
        public static void Main(string[] args)
        {
            Heartbeat.Instance.InitHeartbeat("Cart REST-API");
            Heartbeat.Instance.Start();


            Messenger.CreateInstance("Cart", makeVerbose: true);

            try {
                IWebHost host = CreateWebHostBuilder(args).Build();
                host.RunAsync();
                host.WaitForShutdown();
            }
            finally {
                Messenger.DisposeInstance();
            }
        }
Exemple #11
0
        /// <summary>
        /// Cleanup the server.
        /// </summary>
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    if (host != null)
                    {
                        host.StopAsync();
                        host.WaitForShutdown();
                        host.Dispose();
                        host = null;
                    }
                }

                disposedValue = true;
            }
        }
Exemple #12
0
        /// <summary>
        /// Cleanup the server.
        /// </summary>
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    if (_selfHostServer != null)
                    {
#if NETCORE
                        _selfHostServer.StopAsync();
                        _selfHostServer.WaitForShutdown();
#endif
                        _selfHostServer.Dispose();
                        _selfHostServer = null;
                    }
                }

                disposedValue = true;
            }
        }
Exemple #13
0
        public static void Main(string[] args)
        {
            Heartbeat.Instance.InitHeartbeat("Orders REST-API");
            Heartbeat.Instance.Start();

            // Listen for Carts published on the newOrders channel.
            // Send this cart to the database.
            Messenger.CreateInstance("Orders", makeVerbose: true);
            Messenger.Instance.pn.AddListener(new OrdersPubnubCallback());
            Messenger.Instance.pn.Subscribe <string>()
            .Channels(new string[] { Messenger.MessageType.NewOrders.ToString(), Messenger.MessageType.ProductChanges.ToString() })
            .Execute();


            // Setup WebServer
            try {
                IWebHost host = CreateWebHostBuilder(args).Build();
                host.RunAsync();
                host.WaitForShutdown();
            }
            finally {
                Messenger.DisposeInstance();
            }
        }
Exemple #14
0
 public void Dispose()
 {
     _webHost.StopAsync();
     _webHost.WaitForShutdown();
 }
Exemple #15
0
 public static void OnTermination(object sender, EventArgs e)
 {
     _webHost.StopAsync();
     _webHost.WaitForShutdown();
 }
Exemple #16
0
        static void Main(string[] args)
        {
            if (args.Length > 0 && args[0] == "run")
            {
                args = args.Skip(1).ToArray(); // Hack to make dotnet watch work
            }
            ServicePointManager.DefaultConnectionLimit = 100;
            IWebHost host      = null;
            var      processor = new ConsoleLoggerProcessor();
            CustomConsoleLogProvider loggerProvider = new CustomConsoleLogProvider(processor);

            using var loggerFactory = new LoggerFactory();
            loggerFactory.AddProvider(loggerProvider);
            var  logger = loggerFactory.CreateLogger("Configuration");
            Logs logs   = new Logs();

            logs.Configure(loggerFactory);
            IConfiguration conf = null;

            try
            {
                conf = new DefaultConfiguration()
                {
                    Logger = logger
                }.CreateConfiguration(args);
                if (conf == null)
                {
                    return;
                }

                var builder = new WebHostBuilder()
                              .UseKestrel()
                              .UseConfiguration(conf)
                              .ConfigureLogging(l =>
                {
                    l.AddFilter("Microsoft", LogLevel.Error);
                    if (!conf.GetOrDefault <bool>("verbose", false))
                    {
                        l.AddFilter("Events", LogLevel.Warning);
                    }
                    l.AddFilter("System.Net.Http.HttpClient", LogLevel.Critical);
                    l.AddFilter("Microsoft.AspNetCore.Antiforgery.Internal", LogLevel.Critical);
                    l.AddFilter("Fido2NetLib.DistributedCacheMetadataService", LogLevel.Error);
                    l.AddProvider(new CustomConsoleLogProvider(processor));
                })
                              .UseStartup <Startup>();

                // When we run the app with dotnet run (typically in dev env), the wwwroot isn't in the same directory
                // than this assembly.
                // But when we use dotnet publish, the wwwroot is published alongside the assembly!
                // This fix https://github.com/btcpayserver/btcpayserver/issues/1894
                var defaultContentPath   = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                var defaultWebRoot       = Path.Combine(defaultContentPath, "wwwroot");
                var defaultWebRootExists = Directory.Exists(defaultWebRoot);
                if (!defaultWebRootExists)
                {
                    // When we use dotnet run...
                    builder.UseContentRoot(Directory.GetCurrentDirectory());
                }
                host = builder.Build();
                host.StartWithTasksAsync().GetAwaiter().GetResult();
                var urls = host.ServerFeatures.Get <IServerAddressesFeature>().Addresses;
                foreach (var url in urls)
                {
                    // Some tools such as dotnet watch parse this exact log to open the browser
                    logger.LogInformation("Now listening on: " + url);
                }
                host.WaitForShutdown();
            }
            catch (ConfigException ex)
            {
                if (!string.IsNullOrEmpty(ex.Message))
                {
                    logs.Configuration.LogError(ex.Message);
                }
            }
            catch (Exception e) when(PluginManager.IsExceptionByPlugin(e))
            {
                var pluginDir = new DataDirectories().Configure(conf).PluginDir;

                PluginManager.DisablePlugin(pluginDir, e.Source);
            }
            finally
            {
                processor.Dispose();
                if (host == null)
                {
                    logs.Configuration.LogError("Configuration error");
                }
                if (host != null)
                {
                    host.Dispose();
                }
                Serilog.Log.CloseAndFlush();
                loggerProvider.Dispose();
            }
        }
Exemple #17
0
 public void WaitForShutdown()
 {
     host.WaitForShutdown();
 }