1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-14 11:23:42 +02:00

Server 2012/Win8 fix Temporary ASP.Net Files

Fixed: Create Temporary ASP.Net Files when running as admin (Server
2012/Win8)
#ND-68 fixed
This commit is contained in:
Mark McDowall 2013-01-01 12:54:54 -08:00
parent f032917595
commit a0e3255222

View File

@ -1,4 +1,6 @@
using System; using System;
using System.IO;
using System.Runtime.InteropServices;
using System.ServiceProcess; using System.ServiceProcess;
using NLog; using NLog;
using Ninject; using Ninject;
@ -19,11 +21,13 @@ public class ApplicationServer : ServiceBase
private readonly ProcessProvider _processProvider; private readonly ProcessProvider _processProvider;
private readonly MonitoringProvider _monitoringProvider; private readonly MonitoringProvider _monitoringProvider;
private readonly SecurityProvider _securityProvider; private readonly SecurityProvider _securityProvider;
private readonly DiskProvider _diskProvider;
[Inject] [Inject]
public ApplicationServer(ConfigFileProvider configFileProvider, IISProvider iisProvider, public ApplicationServer(ConfigFileProvider configFileProvider, IISProvider iisProvider,
DebuggerProvider debuggerProvider, EnvironmentProvider environmentProvider, DebuggerProvider debuggerProvider, EnvironmentProvider environmentProvider,
ProcessProvider processProvider, MonitoringProvider monitoringProvider, SecurityProvider securityProvider) ProcessProvider processProvider, MonitoringProvider monitoringProvider,
SecurityProvider securityProvider, DiskProvider diskProvider)
{ {
_configFileProvider = configFileProvider; _configFileProvider = configFileProvider;
_iisProvider = iisProvider; _iisProvider = iisProvider;
@ -32,6 +36,7 @@ public ApplicationServer(ConfigFileProvider configFileProvider, IISProvider iisP
_processProvider = processProvider; _processProvider = processProvider;
_monitoringProvider = monitoringProvider; _monitoringProvider = monitoringProvider;
_securityProvider = securityProvider; _securityProvider = securityProvider;
_diskProvider = diskProvider;
} }
public ApplicationServer() public ApplicationServer()
@ -48,6 +53,14 @@ public virtual void Start()
{ {
_iisProvider.StopServer(); _iisProvider.StopServer();
_securityProvider.MakeAccessible(); _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(); _iisProvider.StartServer();
_debuggerProvider.Attach(); _debuggerProvider.Attach();