예제 #1
0
        static void Main(string[] args)
        {
            string configFolder = null;

            if (args.Length == 1)
            {
                configFolder = args[0];
            }

            DnsWebService service = new DnsWebService(configFolder, new Uri("https://technitium.com/download/dns/updatewa.bin"));

            service.Start();
            Console.WriteLine("Technitium DNS Server was started successfully.");
            Console.WriteLine("Using config folder: " + service.ConfigFolder);
            Console.WriteLine("");
            Console.WriteLine("Note: Open http://localhost:" + service.WebServicePort + "/ in web browser to access web console.");
            Console.WriteLine("");
            Console.WriteLine("Press [CTRL + X] to stop...");

            while (true)
            {
                ConsoleKeyInfo key = Console.ReadKey(true);

                if (key.Modifiers == ConsoleModifiers.Control && key.Key == ConsoleKey.X)
                {
                    break;
                }
            }

            service.Stop();
            Console.WriteLine("Technitium DNS Server was stopped successfully.");
        }
        public override Task StartAsync(CancellationToken cancellationToken)
        {
            CheckFirewallEntries();

            _service.Start();

            return(Task.CompletedTask);
        }
예제 #3
0
 public override Task StartAsync(CancellationToken cancellationToken)
 {
     _service.Start();
     return(Task.CompletedTask);
 }
예제 #4
0
        static void Main(string[] args)
        {
            string configFolder = null;

            if (args.Length == 1)
            {
                configFolder = args[0];
            }

            DnsWebService service = null;

            try
            {
                service = new DnsWebService(configFolder, new Uri("https://go.technitium.com/?id=21"));
                service.Start();

                Console.WriteLine("Technitium DNS Server was started successfully.");
                Console.WriteLine("Using config folder: " + service.ConfigFolder);
                Console.WriteLine("");
                Console.WriteLine("Note: Open http://" + Environment.MachineName.ToLower() + ":" + service.WebServicePort + "/ in web browser to access web console.");
                Console.WriteLine("");
                Console.WriteLine("Press [CTRL + C] to stop...");

                Thread main = Thread.CurrentThread;

                Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e)
                {
                    e.Cancel = true;
                    main.Interrupt();
                };

                AppDomain.CurrentDomain.ProcessExit += delegate(object sender, EventArgs e)
                {
                    if (service != null)
                    {
                        Console.WriteLine("");
                        Console.WriteLine("Technitium DNS Server is stopping...");
                        service.Dispose();
                        service = null;
                        Console.WriteLine("Technitium DNS Server was stopped successfully.");
                    }
                };

                Thread.Sleep(Timeout.Infinite);
            }
            catch (ThreadInterruptedException)
            { }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                if (service != null)
                {
                    Console.WriteLine("");
                    Console.WriteLine("Technitium DNS Server is stopping...");
                    service.Dispose();
                    service = null;
                    Console.WriteLine("Technitium DNS Server was stopped successfully.");
                }
            }
        }
예제 #5
0
 protected override void OnStart(string[] args)
 {
     _service = new DnsWebService(null, new Uri("https://go.technitium.com/?id=22"));
     _service.Start();
 }
예제 #6
0
        static void Main(string[] args)
        {
            string configFolder = null;

            if (args.Length == 1)
            {
                configFolder = args[0];
            }

            EventWaitHandle waitHandle = new ManualResetEvent(false);
            EventWaitHandle exitHandle = new ManualResetEvent(false);
            DnsWebService   service    = null;

            try
            {
                Uri updateCheckUri;

                switch (Environment.OSVersion.Platform)
                {
                case PlatformID.Win32NT:
                    updateCheckUri = new Uri("https://go.technitium.com/?id=20");
                    break;

                default:
                    updateCheckUri = new Uri("https://go.technitium.com/?id=21");
                    break;
                }

                service = new DnsWebService(configFolder, updateCheckUri);
                service.Start();

                Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e)
                {
                    e.Cancel = true;
                    waitHandle.Set();
                };

                AppDomain.CurrentDomain.ProcessExit += delegate(object sender, EventArgs e)
                {
                    waitHandle.Set();
                    exitHandle.WaitOne();
                };

                Console.WriteLine("Technitium DNS Server was started successfully.");
                Console.WriteLine("Using config folder: " + service.ConfigFolder);
                Console.WriteLine("");
                Console.WriteLine("Note: Open http://" + service.WebServiceHostname + ":" + service.WebServiceHttpPort + "/ in web browser to access web console.");
                Console.WriteLine("");
                Console.WriteLine("Press [CTRL + C] to stop...");

                waitHandle.WaitOne();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                Console.WriteLine("");
                Console.WriteLine("Technitium DNS Server is stopping...");

                if (service != null)
                {
                    service.Dispose();
                }

                Console.WriteLine("Technitium DNS Server was stopped successfully.");
                exitHandle.Set();
            }
        }
예제 #7
0
 protected override void OnStart(string[] args)
 {
     _service = new DnsWebService(null, new Uri("https://technitium.com/download/dns/updatews2.bin"));
     _service.Start();
 }