WSP Installer checks updated for IIS 8, Windows 2012 and ASP.NET 4.0
This commit is contained in:
parent
cf75c359eb
commit
e94cfe87c1
4 changed files with 56 additions and 40 deletions
|
@ -9,7 +9,7 @@
|
||||||
<!-- Studio settings -->
|
<!-- Studio settings -->
|
||||||
<settings>
|
<settings>
|
||||||
<add key="Log.FileName" value="WebsitePanel.Installer.log" />
|
<add key="Log.FileName" value="WebsitePanel.Installer.log" />
|
||||||
<add key="Web.Service" value="" />
|
<add key="Web.Service" value="http://www.websitepanel.net/Services/InstallerService-Beta.asmx" />
|
||||||
<add key="Web.AutoCheck" value="False" />
|
<add key="Web.AutoCheck" value="False" />
|
||||||
<add key="Web.Proxy.UseProxy" value="false" />
|
<add key="Web.Proxy.UseProxy" value="false" />
|
||||||
<add key="Web.Proxy.Address" value="" />
|
<add key="Web.Proxy.Address" value="" />
|
||||||
|
|
|
@ -282,7 +282,11 @@ namespace WebsitePanel.Setup
|
||||||
WindowsXP,
|
WindowsXP,
|
||||||
WindowsServer2003,
|
WindowsServer2003,
|
||||||
WindowsVista,
|
WindowsVista,
|
||||||
WindowsServer2008
|
WindowsServer2008,
|
||||||
|
Windows7,
|
||||||
|
WindowsServer2008R2,
|
||||||
|
Windows8,
|
||||||
|
WindowsServer2012
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetName(WindowsVersion version)
|
public static string GetName(WindowsVersion version)
|
||||||
|
@ -404,11 +408,28 @@ namespace WebsitePanel.Setup
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
|
switch (osInfo.Version.Minor)
|
||||||
ret = WindowsVersion.WindowsVista;
|
{
|
||||||
else
|
case 0:
|
||||||
ret = WindowsVersion.WindowsServer2008;
|
if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
|
||||||
break;
|
ret = WindowsVersion.WindowsVista;
|
||||||
|
else
|
||||||
|
ret = WindowsVersion.WindowsServer2008;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
|
||||||
|
ret = WindowsVersion.Windows7;
|
||||||
|
else
|
||||||
|
ret = WindowsVersion.WindowsServer2008R2;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
|
||||||
|
ret = WindowsVersion.Windows8;
|
||||||
|
else
|
||||||
|
ret = WindowsVersion.WindowsServer2012;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -590,16 +590,8 @@ namespace WebsitePanel.Setup
|
||||||
|
|
||||||
public static bool CheckAspNet40Registered(SetupVariables setupVariables)
|
public static bool CheckAspNet40Registered(SetupVariables setupVariables)
|
||||||
{
|
{
|
||||||
//
|
var regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\ASP.NET\\4.0.30319.0");
|
||||||
var aspNet40Registered = false;
|
return (regkey != null);
|
||||||
// Run ASP.NET Registration Tool command
|
|
||||||
var psOutput = ExecAspNetRegistrationToolCommand(setupVariables, "-lv");
|
|
||||||
// Split process output per lines
|
|
||||||
var strLines = psOutput.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
// Lookup for an evidence of ASP.NET 4.0
|
|
||||||
aspNet40Registered = strLines.Any((string s) => { return s.Contains("4.0.30319.0"); });
|
|
||||||
//
|
|
||||||
return aspNet40Registered;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string ExecAspNetRegistrationToolCommand(SetupVariables setupVariables, string arguments)
|
public static string ExecAspNetRegistrationToolCommand(SetupVariables setupVariables, string arguments)
|
||||||
|
|
|
@ -40,6 +40,7 @@ using WebsitePanel.Setup.Web;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Management;
|
using System.Management;
|
||||||
using WebsitePanel.Setup.Actions;
|
using WebsitePanel.Setup.Actions;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
|
||||||
namespace WebsitePanel.Setup
|
namespace WebsitePanel.Setup
|
||||||
{
|
{
|
||||||
|
@ -233,9 +234,14 @@ namespace WebsitePanel.Setup
|
||||||
Log.WriteInfo(string.Format("OS check: {0}", details));
|
Log.WriteInfo(string.Format("OS check: {0}", details));
|
||||||
|
|
||||||
if (!(version == OS.WindowsVersion.WindowsServer2003 ||
|
if (!(version == OS.WindowsVersion.WindowsServer2003 ||
|
||||||
version == OS.WindowsVersion.WindowsServer2008))
|
version == OS.WindowsVersion.WindowsServer2008 ||
|
||||||
|
version == OS.WindowsVersion.WindowsServer2008R2 ||
|
||||||
|
version == OS.WindowsVersion.WindowsServer2012 ||
|
||||||
|
version == OS.WindowsVersion.WindowsVista ||
|
||||||
|
version == OS.WindowsVersion.Windows7 ||
|
||||||
|
version == OS.WindowsVersion.Windows8 ))
|
||||||
{
|
{
|
||||||
details = "Windows Server 2003 or Windows Server 2008 required.";
|
details = "OS required: Windows Server 2008/2008 R2/2012 or Windows Vista/7/8.";
|
||||||
Log.WriteError(string.Format("OS check: {0}", details), null);
|
Log.WriteError(string.Format("OS check: {0}", details), null);
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
return CheckStatuses.Warning;
|
return CheckStatuses.Warning;
|
||||||
|
@ -318,12 +324,12 @@ namespace WebsitePanel.Setup
|
||||||
Log.WriteInfo(string.Format("ASP.NET check: {0}", details));
|
Log.WriteInfo(string.Format("ASP.NET check: {0}", details));
|
||||||
return CheckStatuses.Error;
|
return CheckStatuses.Error;
|
||||||
}
|
}
|
||||||
if (!IsAspNetRoleServiceInstalled())
|
if (!IsAspNetRoleServiceInstalled())
|
||||||
{
|
{
|
||||||
details = "ASP.NET role service is not installed on your server. Run Server Manager to add ASP.NET role service.";
|
details = "ASP.NET role service is not installed on your server. Run Server Manager to add ASP.NET role service.";
|
||||||
Log.WriteInfo(string.Format("ASP.NET check: {0}", details));
|
Log.WriteInfo(string.Format("ASP.NET check: {0}", details));
|
||||||
return CheckStatuses.Error;
|
return CheckStatuses.Error;
|
||||||
}
|
}
|
||||||
// Register ASP.NET 4.0
|
// Register ASP.NET 4.0
|
||||||
if (Utils.CheckAspNet40Registered(SetupVariables) == false)
|
if (Utils.CheckAspNet40Registered(SetupVariables) == false)
|
||||||
{
|
{
|
||||||
|
@ -584,25 +590,22 @@ namespace WebsitePanel.Setup
|
||||||
|
|
||||||
private static bool IsWebServerRoleInstalled()
|
private static bool IsWebServerRoleInstalled()
|
||||||
{
|
{
|
||||||
WmiHelper wmi = new WmiHelper("root\\cimv2");
|
RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\InetStp");
|
||||||
using (ManagementObjectCollection roles = wmi.ExecuteQuery("SELECT NAME FROM Win32_ServerFeature WHERE ID=2"))
|
if (regkey == null)
|
||||||
{
|
return false;
|
||||||
return (roles.Count > 0);
|
|
||||||
}
|
int value = (int)regkey.GetValue("MajorVersion", 0);
|
||||||
|
return value == 7 || value == 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsAspNetRoleServiceInstalled()
|
private static bool IsAspNetRoleServiceInstalled()
|
||||||
{
|
{
|
||||||
WmiHelper wmi = new WmiHelper("root\\cimv2");
|
RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\InetStp\\Components");
|
||||||
using (ManagementObjectCollection roles = wmi.ExecuteQuery("SELECT NAME FROM Win32_ServerFeature WHERE ID=148"))
|
if (regkey == null)
|
||||||
{
|
return false;
|
||||||
return (roles.Count > 0);
|
|
||||||
}
|
int value = (int)regkey.GetValue("ASPNET", 0);
|
||||||
|
return value == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue