Fixed: Web Sites: Add IP Address to binding when using dedicated ip addresses

This commit is contained in:
robvde 2012-09-27 16:48:40 +04:00
parent b04e862a86
commit fe89ed6609
2 changed files with 31 additions and 4 deletions

View file

@ -223,7 +223,7 @@ namespace WebsitePanel.EnterpriseServer
StringDictionary webSettings = ServerController.GetServiceSettings(serviceId);
int addressId = Utils.ParseInt(webSettings["SharedIP"], 0);
bool dedicatedIp = false;
if (packageAddressId != 0)
{
// dedicated IP
@ -231,6 +231,7 @@ namespace WebsitePanel.EnterpriseServer
if (packageIp != null)
{
addressId = packageIp.AddressID;
dedicatedIp = true;
}
}
@ -258,6 +259,12 @@ namespace WebsitePanel.EnterpriseServer
return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS;
}
if (dedicatedIp)
{
// DEDICATED IP
bindings.Add(new ServerBinding(ipAddr, "80", ""));
}
UserInfo user = PackageController.GetPackageOwner(packageId);
UserSettings webPolicy = UserController.GetUserSettings(user.UserId, UserSettings.WEB_POLICY);
@ -628,7 +635,6 @@ namespace WebsitePanel.EnterpriseServer
if (addressId != 0)
ServerController.AddItemIPAddress(siteItemId, addressId);
DomainInfo ZoneInfo = ServerController.GetDomain(domain.ZoneName);
AddWebSitePointer(siteItemId,
@ -644,6 +650,27 @@ namespace WebsitePanel.EnterpriseServer
, ZoneInfo.DomainId, true, true, true);
}
WebServer web = new WebServer();
ServiceProviderProxy.Init(web, siteItem.ServiceId);
WebSite site = web.GetSite(siteItem.SiteId);
List<ServerBinding> newBindings = new List<ServerBinding>();
foreach (ServerBinding b in site.Bindings)
{
newBindings.Add(b);
}
// load web site IP address
IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
string ipAddr = "*";
if (ip != null)
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
newBindings.Add(new ServerBinding(ipAddr, "80", ""));
web.UpdateSiteBindings(siteItem.SiteId, newBindings.ToArray(), false);
return 0;
}
catch (Exception ex)