diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql
index c93afef1..bef6d385 100644
--- a/WebsitePanel/Database/update_db.sql
+++ b/WebsitePanel/Database/update_db.sql
@@ -12,7 +12,181 @@ BEGIN
END
GO
+-- Windows Server 2012
+IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Windows Server 2012')
+BEGIN
+INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (104, 1, N'Windows2012', N'Windows Server 2012', N'WebsitePanel.Providers.OS.Windows2012, WebsitePanel.Providers.OS.Windows2012', N'Windows2008', NULL)
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 104 AND [PropertyName] = N'UsersHome')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (104, N'UsersHome', N'%SYSTEMDRIVE%\HostingSpaces')
+END
+GO
+
+-- IIS 8.0
+IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Internet Information Services 8.0')
+BEGIN
+INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (105, 2, N'IIS80', N'Internet Information Services 8.0', N'WebsitePanel.Providers.Web.IIs70, WebsitePanel.Providers.Web.IIs70', N'IIS70', NULL)
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'AspNet11Pool')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'AspNet11Pool', N'ASP.NET 1.1')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'AspNet40Path')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'AspNet40Path', N'%WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'AspNet40x64Path')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'AspNet40x64Path', N'%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'AspNetBitnessMode')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'AspNetBitnessMode', N'32')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'CFFlashRemotingDirectory')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'CFFlashRemotingDirectory', N'C:\ColdFusion9\runtime\lib\wsconfig\1')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'CFScriptsDirectory')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'CFScriptsDirectory', N'C:\Inetpub\wwwroot\CFIDE')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'ClassicAspNet20Pool')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'ClassicAspNet20Pool', N'ASP.NET 2.0 (Classic)')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'ClassicAspNet40Pool')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'ClassicAspNet40Pool', N'ASP.NET 4.0 (Classic)')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'ColdFusionPath')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'ColdFusionPath', N'C:\ColdFusion9\runtime\lib\wsconfig\jrun_iis6.dll')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'GalleryXmlFeedUrl')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'GalleryXmlFeedUrl', N'')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'IntegratedAspNet20Pool')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'IntegratedAspNet20Pool', N'ASP.NET 2.0 (Integrated)')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'IntegratedAspNet40Pool')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'IntegratedAspNet40Pool', N'ASP.NET 4.0 (Integrated)')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'PerlPath')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'PerlPath', N'%SYSTEMDRIVE%\Perl\bin\PerlEx30.dll')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'Php4Path')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'Php4Path', N'%PROGRAMFILES%\PHP\php.exe')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'PhpMode')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'PhpMode', N'FastCGI')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'PhpPath')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'PhpPath', N'%PROGRAMFILES%\PHP\php-cgi.exe')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'ProtectedGroupsFile')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'ProtectedGroupsFile', N'.htgroup')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'ProtectedUsersFile')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'ProtectedUsersFile', N'.htpasswd')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'SecureFoldersModuleAssembly')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'SecureFoldersModuleAssembly', N'WebsitePanel.IIsModules.SecureFolders, WebsitePanel.IIsModules, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=37f9c58a0aa32ff0')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'WebGroupName')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'WebGroupName', N'WSP_IUSRS')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'WmSvc.CredentialsMode')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'WmSvc.CredentialsMode', N'WINDOWS')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 105 AND [PropertyName] = N'WmSvc.Port')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (105, N'WmSvc.Port', N'8172')
+END
+GO
+
+-- MS FTP 8.0
+IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft FTP Server 8.0')
+BEGIN
+INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (106, 3, N'MSFTP80', N'Microsoft FTP Server 8.0', N'WebsitePanel.Providers.FTP.MsFTP, WebsitePanel.Providers.FTP.IIs70', N'MSFTP70', NULL)
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 106 AND [PropertyName] = N'FtpGroupName')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (106, N'FtpGroupName', N'WSPFtpUsers')
+END
+GO
+
+IF NOT EXISTS (SELECT * FROM [dbo].[ServiceDefaultProperties] WHERE [ProviderID] = 106 AND [PropertyName] = N'SiteId')
+BEGIN
+ INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (106, N'SiteId', N'Default FTP Site')
+END
+GO
+
+-- end of MS FTP 8.0, IIS 8.0 and Windows 2012
+
+-- new user settings
IF NOT EXISTS (SELECT * FROM [dbo].[UserSettings] WHERE ([UserID] = 1) AND ([SettingsName] = 'WebPolicy') AND ([PropertyName] = 'EnableParkingPageTokens'))
BEGIN
INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [PropertyValue]) VALUES (1, N'WebPolicy', N'EnableParkingPageTokens', N'False')
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs
index 9a614110..ad7270c9 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.FTP.IIs70/MsFTP.cs
@@ -966,7 +966,7 @@ namespace WebsitePanel.Providers.FTP
}
RegistryKey ftp = root.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\ftpsvc");
- bool res = value == 7 && ftp != null;
+ bool res = (value == 7 || value == 8) && ftp != null;
if (ftp != null)
ftp.Close();
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2008/Windows2008.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2008/Windows2008.cs
index ece1d802..dc7526d1 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2008/Windows2008.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2008/Windows2008.cs
@@ -34,7 +34,9 @@ namespace WebsitePanel.Providers.OS
{
Server.Utils.OS.WindowsVersion version = WebsitePanel.Server.Utils.OS.GetVersion();
return version == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2008
- || version == WebsitePanel.Server.Utils.OS.WindowsVersion.Vista;
+ || version == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2008R2
+ || version == WebsitePanel.Server.Utils.OS.WindowsVersion.Vista
+ || version == WebsitePanel.Server.Utils.OS.WindowsVersion.Windows7;
}
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Properties/AssemblyInfo.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..83346ab7
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Properties/AssemblyInfo.cs
@@ -0,0 +1,21 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("WebsitePanel.Providers.OS.Windows2012")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyProduct("WebsitePanel.Providers.OS.Windows2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("FFC1F8CB-4933-4FBA-B629-9E73D673C742")]
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/WebsitePanel.Providers.OS.Windows2012.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/WebsitePanel.Providers.OS.Windows2012.csproj
new file mode 100644
index 00000000..bef6e5d3
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/WebsitePanel.Providers.OS.Windows2012.csproj
@@ -0,0 +1,108 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}
+ Library
+ Properties
+ WebsitePanel.Providers.OS.Windows2012
+ WebsitePanel.Providers.OS.Windows2012
+
+
+ 3.5
+
+
+ v3.5
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+
+ true
+ full
+ false
+ ..\WebsitePanel.Server\bin\
+ DEBUG;TRACE
+ prompt
+ 4
+ AllRules.ruleset
+ 618
+
+
+ none
+ true
+ ..\WebsitePanel.Server\bin\
+ TRACE
+ prompt
+ 4
+ AllRules.ruleset
+ 618
+
+
+
+
+
+
+
+
+ VersionInfo.cs
+
+
+
+
+
+
+ {684C932A-6C75-46AC-A327-F3689D89EB42}
+ WebsitePanel.Providers.Base
+
+
+ {899B3048-46BE-4C4D-9D41-0043C8B0D11E}
+ WebsitePanel.Providers.OS.Windows2003
+
+
+ {E91E52F3-9555-4D00-B577-2B1DBDD87CA7}
+ WebsitePanel.Server.Utils
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs
new file mode 100644
index 00000000..cbdd6422
--- /dev/null
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs
@@ -0,0 +1,40 @@
+// Copyright (c) 2012, Outercurve Foundation.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// - Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// - Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// - Neither the name of the Outercurve Foundation nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+namespace WebsitePanel.Providers.OS
+{
+ public class Windows2012 : Windows2003
+ {
+ public override bool IsInstalled()
+ {
+ Server.Utils.OS.WindowsVersion version = WebsitePanel.Server.Utils.OS.GetVersion();
+ return version == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2012
+ || version == WebsitePanel.Server.Utils.OS.WindowsVersion.Windows8;
+ }
+ }
+}
diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs
index a773dae2..13c76f18 100644
--- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs
@@ -3488,7 +3488,7 @@ namespace WebsitePanel.Providers.Web
rk.Close();
}
- return value == 7;
+ return value == 7 || value == 8;
}
public override bool IsInstalled()
diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Utils/OS.cs b/WebsitePanel/Sources/WebsitePanel.Server.Utils/OS.cs
index 96800ef9..accc9d27 100644
--- a/WebsitePanel/Sources/WebsitePanel.Server.Utils/OS.cs
+++ b/WebsitePanel/Sources/WebsitePanel.Server.Utils/OS.cs
@@ -282,7 +282,11 @@ namespace WebsitePanel.Server.Utils
WindowsXP,
WindowsServer2003,
Vista,
- WindowsServer2008
+ WindowsServer2008,
+ Windows7,
+ WindowsServer2008R2,
+ Windows8,
+ WindowsServer2012
}
///
@@ -362,11 +366,28 @@ namespace WebsitePanel.Server.Utils
}
break;
case 6:
- if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
- ret = WindowsVersion.Vista;
- else
- ret = WindowsVersion.WindowsServer2008;
- break;
+ switch (osInfo.Version.Minor)
+ {
+ case 0:
+ if (info.wProductType == (byte)WinPlatform.VER_NT_WORKSTATION)
+ ret = WindowsVersion.Vista;
+ 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;
}
diff --git a/WebsitePanel/Sources/WebsitePanel.Server.sln b/WebsitePanel/Sources/WebsitePanel.Server.sln
index 4848013b..f063d89f 100644
--- a/WebsitePanel/Sources/WebsitePanel.Server.sln
+++ b/WebsitePanel/Sources/WebsitePanel.Server.sln
@@ -105,6 +105,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Server.WPIServ
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail.SmarterMail10", "WebsitePanel.Providers.Mail.SmarterMail10\WebsitePanel.Providers.Mail.SmarterMail10.csproj", "{ADEAADF8-62E6-4AA9-9E0D-A8E552A2A85A}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.OS.Windows2012", "WebsitePanel.Providers.OS.Windows2012\WebsitePanel.Providers.OS.Windows2012.csproj", "{27130BBB-76FA-411E-8B4D-51CD4DC821AF}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -575,6 +577,16 @@ Global
{ADEAADF8-62E6-4AA9-9E0D-A8E552A2A85A}.Release|Mixed Platforms.Build.0 = Release|x86
{ADEAADF8-62E6-4AA9-9E0D-A8E552A2A85A}.Release|x86.ActiveCfg = Release|x86
{ADEAADF8-62E6-4AA9-9E0D-A8E552A2A85A}.Release|x86.Build.0 = Release|x86
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/WebsitePanel/Sources/WebsitePanel.Server/Web.config b/WebsitePanel/Sources/WebsitePanel.Server/Web.config
index dafa8009..48568b3a 100644
--- a/WebsitePanel/Sources/WebsitePanel.Server/Web.config
+++ b/WebsitePanel/Sources/WebsitePanel.Server/Web.config
@@ -44,7 +44,7 @@
-
+