private void UpdateSystemConfiguration(string componentId) { try { Log.WriteStart("Updating system configuration"); string componentName = AppConfig.GetComponentSettingStringValue(componentId, "ComponentName"); Log.WriteInfo(string.Format("Deleting \"{0}\" component settings ", componentName)); XmlUtils.RemoveXmlNode(AppConfig.GetComponentConfig(componentId)); Log.WriteInfo("Saving system configuration"); AppConfig.SaveConfiguration(); Log.WriteEnd("Updated system configuration"); InstallLog.AppendLine("- Updated system configuration"); } catch (Exception ex) { if (Utils.IsThreadAbortException(ex)) { return; } Log.WriteError("Config error", ex); InstallLog.AppendLine("- Failed to update system configuration"); throw; } }
public static DialogResult Setup(object obj) { Hashtable args = Utils.GetSetupParameters(obj); string shellVersion = Utils.GetStringSetupParameter(args, "ShellVersion"); string componentId = Utils.GetStringSetupParameter(args, "ComponentId"); AppConfig.LoadConfiguration(); InstallerForm form = new InstallerForm(); Wizard wizard = form.Wizard; wizard.SetupVariables.SetupAction = SetupActions.Setup; LoadSetupVariablesFromConfig(wizard, componentId); wizard.SetupVariables.WebSiteId = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteId"); wizard.SetupVariables.WebSiteIP = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteIP"); wizard.SetupVariables.WebSitePort = AppConfig.GetComponentSettingStringValue(componentId, "WebSitePort"); wizard.SetupVariables.WebSiteDomain = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteDomain"); wizard.SetupVariables.VirtualDirectory = AppConfig.GetComponentSettingStringValue(componentId, "VirtualDirectory"); wizard.SetupVariables.NewWebSite = AppConfig.GetComponentSettingBooleanValue(componentId, "NewWebSite"); wizard.SetupVariables.NewVirtualDirectory = AppConfig.GetComponentSettingBooleanValue(componentId, "NewVirtualDirectory"); wizard.SetupVariables.VirtualDirectory = AppConfig.GetComponentSettingStringValue(componentId, "VirtualDirectory"); wizard.SetupVariables.IISVersion = Utils.GetVersionSetupParameter(args, "IISVersion"); //IntroductionPage page1 = new IntroductionPage(); WebPage page1 = new WebPage(); UrlPage page2 = new UrlPage(); ExpressInstallPage page3 = new ExpressInstallPage(); //create install actions InstallAction action = new InstallAction(ActionTypes.UpdateWebSite); action.Description = "Updating web site..."; page3.Actions.Add(action); action = new InstallAction(ActionTypes.UpdateEnterpriseServerUrl); action.Description = "Updating site settings..."; page3.Actions.Add(action); action = new InstallAction(ActionTypes.UpdateConfig); action.Description = "Updating system configuration..."; page3.Actions.Add(action); FinishPage page4 = new FinishPage(); wizard.Controls.AddRange(new Control[] { page1, page2, page3, page4 }); wizard.LinkPages(); wizard.SelectedPage = page1; //show wizard IWin32Window owner = args["ParentForm"] as IWin32Window; return(form.ShowModal(owner)); }
public static void LoadSetupVariablesFromConfig(SetupVariables vars, string componentId) { vars.InstallationFolder = AppConfig.GetComponentSettingStringValue(componentId, "InstallFolder"); vars.ComponentName = AppConfig.GetComponentSettingStringValue(componentId, "ComponentName"); vars.ComponentCode = AppConfig.GetComponentSettingStringValue(componentId, "ComponentCode"); vars.ComponentDescription = AppConfig.GetComponentSettingStringValue(componentId, "ComponentDescription"); vars.ComponentId = componentId; vars.ApplicationName = AppConfig.GetComponentSettingStringValue(componentId, "ApplicationName"); vars.Version = AppConfig.GetComponentSettingStringValue(componentId, "Release"); vars.Instance = AppConfig.GetComponentSettingStringValue(componentId, "Instance"); }
private bool CheckServerBindings() { try { string newIP = cbWebSiteIP.Text; string newPort = txtWebSiteTcpPort.Text; string newDomain = txtWebSiteDomain.Text; if (SetupVariables.SetupAction == SetupActions.Setup) { SetupVariables.UpdateWebSite = true; //load old settings from config string componentId = SetupVariables.ComponentId; string ip = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteIP"); string port = AppConfig.GetComponentSettingStringValue(componentId, "WebSitePort"); string domain = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteDomain"); if (newIP == ip && newPort == port && IsEqualString(newDomain, domain)) { //settings were not changed SetupVariables.UpdateWebSite = false; return(true); } } bool iis7 = (SetupVariables.IISVersion.Major == 7); string siteId = iis7 ? WebUtils.GetIIS7SiteIdByBinding(newIP, newPort, newDomain) : WebUtils.GetSiteIdByBinding(newIP, newPort, newDomain); if (siteId == null) { return(true); } // get site name string siteName = iis7 ? siteId : WebUtils.GetSite(siteId).Name; ShowWarning(String.Format("'{0}' web site already has server binding with specified IP, Port and Domain.\nPlease, provide another combination of IP, Port and Domain.", siteName)); return(false); } catch (Exception ex) { Log.WriteError("Web error", ex); ShowError("Unable to load IIS data."); return(true); } }
internal List <InstallAction> GetUninstallActions(string componentId) { var list = new List <InstallAction>(); InstallAction action = null; //windows service string serviceName = AppConfig.GetComponentSettingStringValue(componentId, "ServiceName"); string serviceFile = AppConfig.GetComponentSettingStringValue(componentId, "ServiceFile"); string installFolder = AppConfig.GetComponentSettingStringValue(componentId, "InstallFolder"); if (!string.IsNullOrEmpty(serviceName) && !string.IsNullOrEmpty(serviceFile)) { action = new InstallAction(ActionTypes.UnregisterWindowsService); action.Path = Path.Combine(installFolder, serviceFile); action.Name = serviceName; action.Description = "Removing Windows service..."; action.Log = string.Format("- Remove {0} Windows service", serviceName); list.Add(action); } if (ServiceController.GetServices().Any(s => s.DisplayName.Equals(Global.Parameters.SchedulerServiceName, StringComparison.CurrentCultureIgnoreCase))) { action = new InstallAction(ActionTypes.UnregisterWindowsService) { Path = Path.Combine(installFolder, "bin", Global.Parameters.SchedulerServiceFileName), Name = Global.Parameters.SchedulerServiceName, Description = "Removing Windows service..." }; action.Log = string.Format("- Remove {0} Windows service", action.Name); list.Add(action); } //database bool deleteDatabase = AppConfig.GetComponentSettingBooleanValue(componentId, "NewDatabase"); if (deleteDatabase) { string connectionString = AppConfig.GetComponentSettingStringValue(componentId, "InstallConnectionString"); string database = AppConfig.GetComponentSettingStringValue(componentId, "Database"); action = new InstallAction(ActionTypes.DeleteDatabase); action.ConnectionString = connectionString; action.Name = database; action.Description = "Deleting database..."; action.Log = string.Format("- Delete {0} database", database); list.Add(action); } //database user bool deleteDatabaseUser = AppConfig.GetComponentSettingBooleanValue(componentId, "NewDatabaseUser"); if (deleteDatabaseUser) { string connectionString = AppConfig.GetComponentSettingStringValue(componentId, "InstallConnectionString"); string username = AppConfig.GetComponentSettingStringValue(componentId, "DatabaseUser"); action = new InstallAction(ActionTypes.DeleteDatabaseUser); action.ConnectionString = connectionString; action.UserName = username; action.Description = "Deleting database user..."; action.Log = string.Format("- Delete {0} database user", username); list.Add(action); } //database login (from standalone setup) string loginName = AppConfig.GetComponentSettingStringValue(componentId, "DatabaseLogin"); if (!string.IsNullOrEmpty(loginName)) { string connectionString = AppConfig.GetComponentSettingStringValue(componentId, "InstallConnectionString"); action = new InstallAction(ActionTypes.DeleteDatabaseLogin); action.ConnectionString = connectionString; action.UserName = loginName; action.Description = "Deleting database login..."; action.Log = string.Format("- Delete {0} database login", loginName); list.Add(action); } //virtual directory bool deleteVirtualDirectory = AppConfig.GetComponentSettingBooleanValue(componentId, "NewVirtualDirectory"); if (deleteVirtualDirectory) { string virtualDirectory = AppConfig.GetComponentSettingStringValue(componentId, "VirtualDirectory"); string virtualDirectorySiteId = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteId"); action = new InstallAction(ActionTypes.DeleteVirtualDirectory); action.SiteId = virtualDirectorySiteId; action.Name = virtualDirectory; action.Description = "Deleting virtual directory..."; action.Log = string.Format("- Delete {0} virtual directory...", virtualDirectory); list.Add(action); } //web site bool deleteWebSite = AppConfig.GetComponentSettingBooleanValue(componentId, "NewWebSite"); if (deleteWebSite) { string siteId = AppConfig.GetComponentSettingStringValue(componentId, "WebSiteId"); action = new InstallAction(ActionTypes.DeleteWebSite); action.SiteId = siteId; action.Description = "Deleting web site..."; action.Log = string.Format("- Delete {0} web site", siteId); list.Add(action); } //application pool bool deleteAppPool = AppConfig.GetComponentSettingBooleanValue(componentId, "NewApplicationPool"); if (deleteAppPool) { string appPoolName = AppConfig.GetComponentSettingStringValue(componentId, "ApplicationPool"); if (string.IsNullOrEmpty(appPoolName)) { appPoolName = WebUtils.WEBSITEPANEL_ADMIN_POOL; } action = new InstallAction(ActionTypes.DeleteApplicationPool); action.Name = appPoolName; action.Description = "Deleting application pool..."; action.Log = string.Format("- Delete {0} application pool", appPoolName); list.Add(action); } //user account bool deleteUserAccount = AppConfig.GetComponentSettingBooleanValue(componentId, "NewUserAccount"); if (deleteUserAccount) { string username = AppConfig.GetComponentSettingStringValue(componentId, "UserAccount"); string domain = AppConfig.GetComponentSettingStringValue(componentId, "Domain"); //membership if (Wizard.SetupVariables.UserMembership != null && Wizard.SetupVariables.UserMembership.Length > 0) { action = new InstallAction(ActionTypes.DeleteUserMembership); action.Name = username; action.Domain = domain; action.Membership = Wizard.SetupVariables.UserMembership; action.Description = "Removing user account membership..."; action.Log = string.Format("- Remove {0} user account membership", username); list.Add(action); } action = new InstallAction(ActionTypes.DeleteUserAccount); action.Name = username; action.Domain = domain; action.Description = "Deleting user account..."; action.Log = string.Format("- Delete {0} user account", username); list.Add(action); } //directory string path = AppConfig.GetComponentSettingStringValue(componentId, "InstallFolder"); if (!string.IsNullOrEmpty(path)) { action = new InstallAction(ActionTypes.DeleteDirectory); action.Path = path; action.Description = "Deleting application folder..."; action.Log = string.Format("- Delete {0} folder", path); list.Add(action); } //config action = new InstallAction(ActionTypes.UpdateConfig); action.Key = componentId; action.Description = "Updating configuration settings..."; action.Log = "- Update configuration settings"; list.Add(action); return(list); }