From 21e91d29319d3f35b56cbd3fdff60d6430dd185d Mon Sep 17 00:00:00 2001 From: feodor_fitsner Date: Wed, 26 Sep 2012 10:24:01 -0700 Subject: [PATCH 1/4] Incorrect displaying of shared/dedicated IP on website details screen. --- .../Code/WebServers/WebServerController.cs | 17 ++++++++++++----- .../WebsitePanel.Providers.Base/Web/WebSite.cs | 7 +++++++ .../WebsitePanel/WebSitesEditSite.ascx.cs | 8 +++----- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs index 8cb32b80..4cde88c0 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs @@ -133,6 +133,18 @@ namespace WebsitePanel.EnterpriseServer if(ip != null) site.SiteIPAddress = ip.ExternalIP; + // check if site has dedicated IP assigned + var siteIpAddresses = ServerController.GetItemIPAddresses(siteItemId, IPAddressPool.None); + foreach (var siteIp in siteIpAddresses) + { + var packageIpAddress = ServerController.GetPackageIPAddress(siteIp.AddressID); + if (packageIpAddress != null && packageIpAddress.ExternalIP == site.SiteIPAddress) + { + site.IsDedicatedIP = true; + break; + } + } + // truncate home folder site.ContentPath = FilesController.GetVirtualPackagePath(siteItem.PackageId, site.ContentPath); @@ -654,8 +666,6 @@ namespace WebsitePanel.EnterpriseServer { TaskManager.CompleteTask(); } - - return 0; } public static int SwitchWebSiteToSharedIP(int siteItemId) @@ -717,9 +727,6 @@ namespace WebsitePanel.EnterpriseServer { TaskManager.CompleteTask(); } - - return 0; - } private static void FillWebServerBindings(List bindings, List dnsRecords, diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs index e80b2f1a..f55588ea 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/Web/WebSite.cs @@ -47,6 +47,7 @@ namespace WebsitePanel.Providers.Web private string siteId; private string siteIPAddress; private int siteIPAddressId; + private bool isDedicatedIP; private string dataPath; private ServerBinding[] bindings; private bool frontPageAvailable; @@ -85,6 +86,12 @@ namespace WebsitePanel.Providers.Web set { siteIPAddressId = value; } } + public bool IsDedicatedIP + { + get { return isDedicatedIP; } + set { isDedicatedIP = value; } + } + /// /// Gets or sets logs path for the web site /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx.cs index af5f5e12..410a4f54 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebSitesEditSite.ascx.cs @@ -176,15 +176,13 @@ namespace WebsitePanel.Portal ddlIpAddresses.Items.Add(new ListItem(fullIP, ip.PackageAddressID.ToString())); } - bool isDedicatedIP = false; - if (!String.IsNullOrEmpty(site.SiteIPAddress)) + if (site.IsDedicatedIP) { litIPAddress.Text = site.SiteIPAddress; - isDedicatedIP = true; } - dedicatedIP.Visible = isDedicatedIP; - sharedIP.Visible = !isDedicatedIP; + dedicatedIP.Visible = site.IsDedicatedIP; + sharedIP.Visible = !site.IsDedicatedIP; cmdSwitchToDedicatedIP.Visible = (ddlIpAddresses.Items.Count > 0); From 5baf5b94979a493a3603dabab24fe3d7412b8d5f Mon Sep 17 00:00:00 2001 From: Virtuworks Date: Wed, 26 Sep 2012 13:44:27 -0400 Subject: [PATCH 2/4] Added tag build-2.0.0.66 for changeset c89b7776e460 From e50cac7ec0c192c16ac36166daa2081260254982 Mon Sep 17 00:00:00 2001 From: gwerner Date: Wed, 26 Sep 2012 18:31:40 -0700 Subject: [PATCH 3/4] SmarterMail 7.x plugin now handles SmarterMail 8.x as well. SmarterMail 10.x name changed to reflect that it works on later versions as well. --- WebsitePanel/Database/install_db.sql | 4 ++-- WebsitePanel/Database/update_db.sql | 4 ++++ .../WebsitePanel.Providers.Mail.SmarterMail7/SmarterMail7.cs | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/WebsitePanel/Database/install_db.sql b/WebsitePanel/Database/install_db.sql index 735ecd50..48e12019 100644 --- a/WebsitePanel/Database/install_db.sql +++ b/WebsitePanel/Database/install_db.sql @@ -23621,11 +23621,11 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName] GO INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (63, 4, N'hMailServer5', N'hMailServer 5.x', N'WebsitePanel.Providers.Mail.hMailServer5, WebsitePanel.Providers.Mail.hMailServer5', N'hMailServer5', NULL) GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (64, 4, N'SmarterMail', N'SmarterMail 7.x', N'WebsitePanel.Providers.Mail.SmarterMail7, WebsitePanel.Providers.Mail.SmarterMail7', N'SmarterMail60', NULL) +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (64, 4, N'SmarterMail', N'SmarterMail 7.x - 8.x', N'WebsitePanel.Providers.Mail.SmarterMail7, WebsitePanel.Providers.Mail.SmarterMail7', N'SmarterMail60', NULL) GO INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (65, 4, N'SmarterMail', N'SmarterMail 9.x', N'WebsitePanel.Providers.Mail.SmarterMail9, WebsitePanel.Providers.Mail.SmarterMail9', N'SmarterMail60', NULL) GO -INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail60', NULL) +INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (66, 4, N'SmarterMail', N'SmarterMail 10.x +', N'WebsitePanel.Providers.Mail.SmarterMail10, WebsitePanel.Providers.Mail.SmarterMail10', N'SmarterMail60', NULL) GO INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (100, 1, N'Windows2008', N'Windows Server 2008', N'WebsitePanel.Providers.OS.Windows2008, WebsitePanel.Providers.OS.Windows2008', N'Windows2008', NULL) GO diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 16f3ae7a..99990a38 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -4863,6 +4863,10 @@ BEGIN INSERT [dbo].[ServiceDefaultProperties] ([ProviderID], [PropertyName], [PropertyValue]) VALUES (66, N'ServiceUrl', N'http://localhost:9998/services/') END GO +UPDATE [dbo].[Providers] SET [DisplayName] = 'SmarterMail 7.x - 8.x' WHERE [DisplayName] = 'SmarterMail 7.x' +GO +UPDATE [dbo].[Providers] SET [DisplayName] = 'SmarterMail 10.x +' WHERE [DisplayName] = 'SmarterMail 10.x' +GO ALTER PROCEDURE [dbo].[AddServiceItem] diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.SmarterMail7/SmarterMail7.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.SmarterMail7/SmarterMail7.cs index 19031afa..5f6df0b4 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Mail.SmarterMail7/SmarterMail7.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Mail.SmarterMail7/SmarterMail7.cs @@ -2107,7 +2107,7 @@ namespace WebsitePanel.Providers.Mail if (!String.IsNullOrEmpty(productVersion)) { string[] split = productVersion.Split(new char[] { '.' }); - return split[0].Equals("7"); + return split[0].Equals("7")||split[0].Equals("8"); } } @@ -2140,7 +2140,7 @@ namespace WebsitePanel.Providers.Mail if (!String.IsNullOrEmpty(productVersion)) { string[] split = productVersion.Split(new[] { '.' }); - return split[0].Equals("7"); + return split[0].Equals("7")||split[0].Equals("8"); } return false; From c6d1fe954949f5bdd5f16322ec3dbc790c8eaaf8 Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 27 Sep 2012 15:31:34 +0300 Subject: [PATCH 4/4] bugfix: CheckLoadUserProfile() on IIS8 --- .../Code/Data/DataProvider.cs | 9 +++--- .../OperatingSystemController.cs | 32 +++++++++++++++---- .../WebsitePanel.Providers.Web.IIS70/IIs70.cs | 14 ++++++-- 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs index 3fdd6f11..75d832da 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Data/DataProvider.cs @@ -3414,7 +3414,6 @@ namespace WebsitePanel.EnterpriseServer public static int GetPackageIdByName(string Name) { - // get Helicon Zoo provider int packageId = -1; List providers = ServerController.GetProviders(); foreach (ProviderInfo providerInfo in providers) @@ -3426,10 +3425,10 @@ namespace WebsitePanel.EnterpriseServer } } - if (-1 == packageId) - { - throw new Exception("Provider not found"); - } + //if (-1 == packageId) + //{ + // throw new Exception("Provider not found"); + //} return packageId; } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/OperatingSystems/OperatingSystemController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/OperatingSystems/OperatingSystemController.cs index deed780f..37e70846 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/OperatingSystems/OperatingSystemController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/OperatingSystems/OperatingSystemController.cs @@ -412,17 +412,35 @@ namespace WebsitePanel.EnterpriseServer public static bool CheckLoadUserProfile(int serverId) { - int packageId = DataProvider.GetPackageIdByName("IIS70"); - int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId); - return WebServerController.GetWebServer(serviceId).CheckLoadUserProfile(); - + int packageId = getIISPackageId(); + if (packageId != -1) + { + int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId); + return WebServerController.GetWebServer(serviceId).CheckLoadUserProfile(); + } + + return false; } + private static int getIISPackageId() + { + int packageId = DataProvider.GetPackageIdByName("IIS80"); + if (packageId == -1) + packageId = DataProvider.GetPackageIdByName("IIS70"); + if (packageId == -1) + packageId = DataProvider.GetPackageIdByName("IIS60"); + + + return packageId; + } public static void EnableLoadUserProfile(int serverId) { - int packageId = DataProvider.GetPackageIdByName("IIS70"); - int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId); - WebServerController.GetWebServer(serviceId).EnableLoadUserProfile(); + int packageId = getIISPackageId(); + if (packageId != -1) + { + int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId); + WebServerController.GetWebServer(serviceId).EnableLoadUserProfile(); + } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs index 78e4f002..a51c4dff 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIS70/IIs70.cs @@ -4046,7 +4046,12 @@ namespace WebsitePanel.Providers.Web { using (var srvman = new ServerManager()) { - return srvman.ApplicationPools["WebsitePanel Server"].ProcessModel.LoadUserProfile; + string poolName = Environment.GetEnvironmentVariable("APP_POOL_ID", EnvironmentVariableTarget.Process); + ApplicationPool pool = srvman.ApplicationPools[poolName]; + if (pool == null) + throw new Exception("ApplicationPool pool is null" + poolName); + + return pool.ProcessModel.LoadUserProfile; } } @@ -4055,7 +4060,12 @@ namespace WebsitePanel.Providers.Web { using (var srvman = new ServerManager()) { - srvman.ApplicationPools["WebsitePanel Server"].ProcessModel.LoadUserProfile = true; + string poolName = Environment.GetEnvironmentVariable("APP_POOL_ID", EnvironmentVariableTarget.Process); + ApplicationPool pool = srvman.ApplicationPools[poolName]; + if (pool == null) + throw new Exception("ApplicationPool pool is null" + poolName); + + pool.ProcessModel.LoadUserProfile = true; // save changes srvman.CommitChanges(); }