Update provider now closes all orphaned IISExpress instances before update.

This commit is contained in:
kay.one
2011-11-20 17:13:58 -08:00
parent 115b06821e
commit d73853f08b
8 changed files with 49 additions and 32 deletions

View File

@@ -13,15 +13,17 @@ namespace NzbDrone.Update.Providers
private readonly ServiceProvider _serviceProvider;
private readonly ProcessProvider _processProvider;
private readonly EnviromentProvider _enviromentProvider;
private readonly IISProvider _iisProvider;
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
public UpdateProvider(DiskProvider diskProvider, ServiceProvider serviceProvider,
ProcessProvider processProvider, EnviromentProvider enviromentProvider)
ProcessProvider processProvider, EnviromentProvider enviromentProvider, IISProvider iisProvider)
{
_diskProvider = diskProvider;
_serviceProvider = serviceProvider;
_processProvider = processProvider;
_enviromentProvider = enviromentProvider;
_iisProvider = iisProvider;
}
public UpdateProvider()
@@ -50,14 +52,14 @@ namespace NzbDrone.Update.Providers
bool isService = false;
logger.Info("Stopping all running services");
if (_serviceProvider.ServiceExist(ServiceProvider.NZBDRONE_SERVICE_NAME)
&& _serviceProvider.IsServiceRunning(ServiceProvider.NZBDRONE_SERVICE_NAME))
{
isService = true;
_serviceProvider.Stop(ServiceProvider.NZBDRONE_SERVICE_NAME);
}
logger.Info("Killing all running processes");
var processes = _processProvider.GetProcessByName(ProcessProvider.NzbDroneProccessName);
foreach (var processInfo in processes)
@@ -65,6 +67,9 @@ namespace NzbDrone.Update.Providers
_processProvider.Kill(processInfo.Id);
}
logger.Info("Killing all orphan IISExpress processes");
_iisProvider.StopServer();
logger.Info("Creating backup of existing installation");
_diskProvider.CopyDirectory(targetFolder, _enviromentProvider.GetUpdateBackUpFolder());
@@ -79,7 +84,7 @@ namespace NzbDrone.Update.Providers
{
RollBack(targetFolder);
foreach(var key in e.Data.Keys)
foreach (var key in e.Data.Keys)
{
logger.Trace("Key: {0}, Value: {1}", key, e.Data[key]);
}