Add ConfigMonitor instance to refresh/reload the config when it changes.
Added logger reference to increase logging around start/stop commands of the service. #54
This commit is contained in:
parent
40d4d7b1f7
commit
e246c2e47c
@ -2,6 +2,7 @@
|
||||
using System.Diagnostics;
|
||||
using System.ServiceProcess;
|
||||
using System.Threading;
|
||||
using Interfaces;
|
||||
using Microsoft.Owin.Hosting;
|
||||
|
||||
namespace WindowsDataCenter
|
||||
@ -16,7 +17,9 @@ namespace WindowsDataCenter
|
||||
private IDisposable _webApp;
|
||||
private bool _stopMainWorkerThread;
|
||||
private Thread _mainWorkerThread;
|
||||
|
||||
private ILogger _logger;
|
||||
private ConfigMonitor.ConfigMonitor _cfgWatcher;
|
||||
|
||||
public void Start()
|
||||
{
|
||||
OnStart(new string[] {});
|
||||
@ -29,9 +32,14 @@ namespace WindowsDataCenter
|
||||
|
||||
protected override void OnStart(string[] args)
|
||||
{
|
||||
var configPath = string.Concat(System.Reflection.Assembly.GetEntryAssembly().Location, ".config");
|
||||
//Initialise the Ninject system.
|
||||
var ninjectInstance = NinjectHelper.GetInstance();
|
||||
_logger = NinjectHelper.GetInstance().Get<ILogger>();
|
||||
_logger.Trace("Starting Data Center Service");
|
||||
|
||||
_cfgWatcher = new ConfigMonitor.ConfigMonitor(configPath);
|
||||
_logger.Trace("Monitoring App.config for changes");
|
||||
_mainWorkerThread = new Thread(MainWorkerThread)
|
||||
{
|
||||
IsBackground = false,
|
||||
@ -44,14 +52,20 @@ namespace WindowsDataCenter
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine(ex);
|
||||
throw;
|
||||
_logger.Fatal(ex);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnStop()
|
||||
{
|
||||
_logger.Trace("Stopping Data Center Service");
|
||||
|
||||
_webApp.Dispose();
|
||||
_logger.Trace("Stopped WebApi");
|
||||
|
||||
_cfgWatcher.Stop();
|
||||
_logger.Trace("Stopped Config Watcher");
|
||||
|
||||
_stopMainWorkerThread = true;
|
||||
if (_mainWorkerThread != null && _mainWorkerThread.IsAlive)
|
||||
{
|
||||
@ -61,6 +75,7 @@ namespace WindowsDataCenter
|
||||
_mainWorkerThread.Interrupt();
|
||||
}
|
||||
}
|
||||
_logger.Trace("Exiting..");
|
||||
}
|
||||
|
||||
private void MainWorkerThread()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user