|
|
|
@ -1,4 +1,6 @@
|
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
using System.ServiceProcess;
|
|
|
|
|
using NLog;
|
|
|
|
|
using Ninject;
|
|
|
|
@ -19,11 +21,13 @@ namespace NzbDrone
|
|
|
|
|
private readonly ProcessProvider _processProvider;
|
|
|
|
|
private readonly MonitoringProvider _monitoringProvider;
|
|
|
|
|
private readonly SecurityProvider _securityProvider;
|
|
|
|
|
private readonly DiskProvider _diskProvider;
|
|
|
|
|
|
|
|
|
|
[Inject]
|
|
|
|
|
public ApplicationServer(ConfigFileProvider configFileProvider, IISProvider iisProvider,
|
|
|
|
|
DebuggerProvider debuggerProvider, EnvironmentProvider environmentProvider,
|
|
|
|
|
ProcessProvider processProvider, MonitoringProvider monitoringProvider, SecurityProvider securityProvider)
|
|
|
|
|
ProcessProvider processProvider, MonitoringProvider monitoringProvider,
|
|
|
|
|
SecurityProvider securityProvider, DiskProvider diskProvider)
|
|
|
|
|
{
|
|
|
|
|
_configFileProvider = configFileProvider;
|
|
|
|
|
_iisProvider = iisProvider;
|
|
|
|
@ -32,6 +36,7 @@ namespace NzbDrone
|
|
|
|
|
_processProvider = processProvider;
|
|
|
|
|
_monitoringProvider = monitoringProvider;
|
|
|
|
|
_securityProvider = securityProvider;
|
|
|
|
|
_diskProvider = diskProvider;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ApplicationServer()
|
|
|
|
@ -48,6 +53,14 @@ namespace NzbDrone
|
|
|
|
|
{
|
|
|
|
|
_iisProvider.StopServer();
|
|
|
|
|
_securityProvider.MakeAccessible();
|
|
|
|
|
|
|
|
|
|
if(_securityProvider.IsCurrentUserAdmin())
|
|
|
|
|
{
|
|
|
|
|
var tempFiles = Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "Temporary ASP.NET Files");
|
|
|
|
|
logger.Debug("Creating Temporary ASP.Net folder: {0}", tempFiles);
|
|
|
|
|
_diskProvider.CreateDirectory(tempFiles);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_iisProvider.StartServer();
|
|
|
|
|
|
|
|
|
|
_debuggerProvider.Attach();
|
|
|
|
|