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 -->
|
||||
<settings>
|
||||
<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.Proxy.UseProxy" value="false" />
|
||||
<add key="Web.Proxy.Address" value="" />
|
||||
|
|
|
@ -282,7 +282,11 @@ namespace WebsitePanel.Setup
|
|||
WindowsXP,
|
||||
WindowsServer2003,
|
||||
WindowsVista,
|
||||
WindowsServer2008
|
||||
WindowsServer2008,
|
||||
Windows7,
|
||||
WindowsServer2008R2,
|
||||
Windows8,
|
||||
WindowsServer2012
|
||||
}
|
||||
|
||||
public static string GetName(WindowsVersion version)
|
||||
|
@ -404,11 +408,28 @@ namespace WebsitePanel.Setup
|
|||
}
|
||||
break;
|
||||
case 6:
|
||||
if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
|
||||
ret = WindowsVersion.WindowsVista;
|
||||
else
|
||||
ret = WindowsVersion.WindowsServer2008;
|
||||
break;
|
||||
switch (osInfo.Version.Minor)
|
||||
{
|
||||
case 0:
|
||||
if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -590,16 +590,8 @@ namespace WebsitePanel.Setup
|
|||
|
||||
public static bool CheckAspNet40Registered(SetupVariables setupVariables)
|
||||
{
|
||||
//
|
||||
var aspNet40Registered = false;
|
||||
// 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;
|
||||
var regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\ASP.NET\\4.0.30319.0");
|
||||
return (regkey != null);
|
||||
}
|
||||
|
||||
public static string ExecAspNetRegistrationToolCommand(SetupVariables setupVariables, string arguments)
|
||||
|
|
|
@ -40,6 +40,7 @@ using WebsitePanel.Setup.Web;
|
|||
using System.IO;
|
||||
using System.Management;
|
||||
using WebsitePanel.Setup.Actions;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace WebsitePanel.Setup
|
||||
{
|
||||
|
@ -233,9 +234,14 @@ namespace WebsitePanel.Setup
|
|||
Log.WriteInfo(string.Format("OS check: {0}", details));
|
||||
|
||||
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);
|
||||
#if DEBUG
|
||||
return CheckStatuses.Warning;
|
||||
|
@ -318,12 +324,12 @@ namespace WebsitePanel.Setup
|
|||
Log.WriteInfo(string.Format("ASP.NET check: {0}", details));
|
||||
return CheckStatuses.Error;
|
||||
}
|
||||
if (!IsAspNetRoleServiceInstalled())
|
||||
{
|
||||
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));
|
||||
return CheckStatuses.Error;
|
||||
}
|
||||
if (!IsAspNetRoleServiceInstalled())
|
||||
{
|
||||
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));
|
||||
return CheckStatuses.Error;
|
||||
}
|
||||
// Register ASP.NET 4.0
|
||||
if (Utils.CheckAspNet40Registered(SetupVariables) == false)
|
||||
{
|
||||
|
@ -584,25 +590,22 @@ namespace WebsitePanel.Setup
|
|||
|
||||
private static bool IsWebServerRoleInstalled()
|
||||
{
|
||||
WmiHelper wmi = new WmiHelper("root\\cimv2");
|
||||
using (ManagementObjectCollection roles = wmi.ExecuteQuery("SELECT NAME FROM Win32_ServerFeature WHERE ID=2"))
|
||||
{
|
||||
return (roles.Count > 0);
|
||||
}
|
||||
RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\InetStp");
|
||||
if (regkey == null)
|
||||
return false;
|
||||
|
||||
int value = (int)regkey.GetValue("MajorVersion", 0);
|
||||
return value == 7 || value == 8;
|
||||
}
|
||||
|
||||
private static bool IsAspNetRoleServiceInstalled()
|
||||
{
|
||||
WmiHelper wmi = new WmiHelper("root\\cimv2");
|
||||
using (ManagementObjectCollection roles = wmi.ExecuteQuery("SELECT NAME FROM Win32_ServerFeature WHERE ID=148"))
|
||||
{
|
||||
return (roles.Count > 0);
|
||||
}
|
||||
RegistryKey regkey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\InetStp\\Components");
|
||||
if (regkey == null)
|
||||
return false;
|
||||
|
||||
int value = (int)regkey.GetValue("ASPNET", 0);
|
||||
return value == 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue