예제 #1
0
        protected override void OnStart(string[] args)
        {
            _hoster = new WcfHoster();
            _hoster.Start();

            Logger.Notifiers.Add(new EventLogNotifier());
            Logger.Notifiers.Add(_hoster.Instance);

            _fileSystemChangesNotifier = new FileSystemChangesNotifier();
        }
예제 #2
0
        protected override void OnStop()
        {
            if (_hoster != null)
            {
                _hoster.Dispose();
                _hoster = null;
            }

            if (_fileSystemChangesNotifier != null)
            {
                _fileSystemChangesNotifier.Dispose();
                _fileSystemChangesNotifier = null;
            }
        }
예제 #3
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            if (Environment.UserInteractive)
            {
                try
                {
                    ConsoleHelpers.EnsureConsole();

                    using (var host = new WcfHoster())
                    {
                        host.Start();

                        Logger.Notifiers.Add(new ConsoleNotifier());
                        Logger.Notifiers.Add(new EventLogNotifier());
                        Logger.Notifiers.Add(host.Instance);

                        using (FileSystemChangesNotifier fileSystemChangesNotifier = new FileSystemChangesNotifier())
                        {
                            Console.WriteLine("Press a key to exit...");
                            Console.Read();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(ex);
                }
            }
            else
            {
                var servicesToRun = new ServiceBase[]
                {
                    new IntegrityCheckerService()
                };
                ServiceBase.Run(servicesToRun);
            }
        }