Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
 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");
 }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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);
        }