Exemplo n.º 1
0
        static void AddApplication(Site site, NippsModule nippsModule)
        {
            string physicalPath = NippsConfig.Environment.IISwwwroot;

            if (ServiceOnlyInstall)
            {
                if (!Match(nippsModule.ApplicationName) && !nippsModule.ApplicationName.StartsWith("Netas.Nipps.DeployManager.Service"))
                {
                    return;
                }
            }

            if (physicalPath.EndsWith("\\"))
            {
                physicalPath += nippsModule.ApplicationName;
            }
            else
            {
                physicalPath += "\\" + nippsModule.ApplicationName;
            }

            nippsModule.ApplicationName = "/" + nippsModule.ApplicationName;

            Console.WriteLine("adding " + nippsModule.ApplicationName + " from path " + physicalPath);
            Application application = site.Applications.Add(nippsModule.ApplicationName, physicalPath);

            application.ApplicationPoolName = string.IsNullOrEmpty(NippsConfig.Environment.IISApplicationPoolName) ? nippsModule.ApplicationPoolName : NippsConfig.Environment.IISApplicationPoolName;
        }
Exemplo n.º 2
0
        static void UpdateWebConfigs(NippsModule nippsModule)
        {
            string configName;
            string configText;

            string[] iisLocalAdminParts = NippsConfig.Environment.IISLocalAdmin.Split('/');
            string[] sqlLocalAdminParts = NippsConfig.Environment.SqlLocalAdmin.Split('/');
            string[] sqlUserParts       = NippsConfig.Environment.SqlUser.Split('/');
            bool     isDeployManager    = nippsModule.ApplicationName.Equals("Netas.Nipps.DeployManager.Service");

            configName = TempFolder + nippsModule.ApplicationName + @"\web.config";
            if (!File.Exists(configName))
            {
                return;
            }

            Console.WriteLine("opening " + configName);

            configText = File.ReadAllText(configName);

            //system.web>identity only one identity must be defined in there
            Console.WriteLine("checking and updating if exist system.web>indendity");
            if (RegexIdentity.Match(configText).Success)
            {
                configText = RegexIdentity.Replace(configText,
                                                   string.Format(IdentityFormat, iisLocalAdminParts[0], iisLocalAdminParts[1]));
            }

            //connectionstrings: only one identity must be defined in there
            Console.WriteLine("checking and updating if exist connectionstrings");
            if (RegexConnectionStringUserID.Match(configText).Success)
            {
                configText = RegexConnectionStringUserID.Replace(configText, string.Format(ConnectionStringUserIDFormat, isDeployManager ? sqlLocalAdminParts[0] : sqlUserParts[0]));
            }

            if (RegexConnectionStringPassword.Match(configText).Success)
            {
                configText = RegexConnectionStringPassword.Replace(configText, string.Format(ConnectionStringPasswordFormat, isDeployManager ? sqlLocalAdminParts[1] : sqlUserParts[1]));
            }

            if (RegexConnectionStringDataSource.Match(configText).Success)
            {
                configText = RegexConnectionStringDataSource.Replace(configText, string.Format(ConnectionStringDataSourceFormat, NippsConfig.Environment.SqlHost));
            }

            if (RegexConnectionStringInitialCatalog.Match(configText).Success)
            {
                configText = RegexConnectionStringInitialCatalog.Replace(configText, string.Format(ConnectionStringInitialCatalogFormat, NippsConfig.Environment.SqlDatabase));
            }

            //appsettings>may be more than one in there
            Console.WriteLine("checking and updating if exist applicationsettings>***serviceurls");
            if (RegexServiceUrls.Matches(configText).Count > 0)
            {
                configText = RegexServiceUrls.Replace(configText, string.Format(ServiceUrlFormat, NippsConfig.Environment.IISSMHostPort));
            }


            File.WriteAllText(configName, configText);
        }
Exemplo n.º 3
0
        static void MoveFolder()
        {
            Console.WriteLine("moving or copying files and folders into " + NippsConfig.Environment.IISwwwroot);

            foreach (string sourceDirectory in Directory.GetDirectories(TempFolder, "Netas.Nipps.*", SearchOption.TopDirectoryOnly))
            {
                string      appName         = sourceDirectory.Replace(TempFolder, "");
                string      targetDirectory = NippsConfig.Environment.IISwwwroot + "\\" + appName;
                NippsModule module          = appName.StartsWith("Netas.Nipps.Service")
                    ?
                                              NippsConfig.Nipps.IPPhoneServices.Where(m => m.ApplicationName.Equals(appName)).Single()
                    :
                                              NippsConfig.Nipps.SMModules.Where(m => m.ApplicationName.Equals(appName)).Single();
                string minVersion = module != null ? module.MinVersion : "";

                //check if first installation or an upgrade
                if (string.IsNullOrEmpty(minVersion))
                {
                    if (Directory.Exists(targetDirectory))
                    {
                        Directory.Delete(targetDirectory, true);
                    }
                    Directory.Move(sourceDirectory, targetDirectory);
                    CreateDirectory(targetDirectory + "\\Logs", IISW3RootDirectorySecurity);
                    GiveFullControlRight(targetDirectory + "\\Logs");
                    GiveFullControlRight(targetDirectory + "\\Tmp");
                    GiveFullControlRight(targetDirectory + "\\nlog.config");
                }
                else
                {
                    foreach (string subDirectory in Directory.GetDirectories(sourceDirectory, "*", SearchOption.AllDirectories))
                    {
                        string subTargetDirectory = targetDirectory + subDirectory.Replace(sourceDirectory, "");
                        Console.WriteLine(subTargetDirectory + " checking and creating if necessary...");
                        if (!Directory.Exists(subTargetDirectory))
                        {
                            CreateDirectory(subTargetDirectory, IISW3RootDirectorySecurity);
                        }
                    }

                    foreach (string file in Directory.GetFiles(sourceDirectory, "*.*", SearchOption.AllDirectories))
                    {
                        string targetFile = targetDirectory + file.Replace(sourceDirectory, "");
                        Console.WriteLine(targetFile + " copying...");
                        File.Copy(file, targetFile, true);
                    }
                }
            }
        }
Exemplo n.º 4
0
        static bool Match(string name)
        {
            try
            {
                NippsModule module = NippsConfig.Nipps.IPPhoneServices
                                     .Where(m => ArgExist(m.Name))
                                     .SingleOrDefault();

                return(name.StartsWith(module.ApplicationName));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(false);
            }
        }
Exemplo n.º 5
0
        static void AddApplication(Site site, NippsModule nippsModule)
        {
            string physicalPath = NippsConfig.Environment.IISwwwroot;

            if (ServiceOnlyInstall)
                if (!Match(nippsModule.ApplicationName) && !nippsModule.ApplicationName.StartsWith("Netas.Nipps.DeployManager.Service"))
                    return;

            if (physicalPath.EndsWith("\\"))
                physicalPath += nippsModule.ApplicationName;
            else
                physicalPath += "\\" + nippsModule.ApplicationName;

            nippsModule.ApplicationName = "/" + nippsModule.ApplicationName;

            Console.WriteLine("adding " + nippsModule.ApplicationName + " from path " + physicalPath);
            Application application = site.Applications.Add(nippsModule.ApplicationName, physicalPath);
            application.ApplicationPoolName = string.IsNullOrEmpty(NippsConfig.Environment.IISApplicationPoolName) ? nippsModule.ApplicationPoolName : NippsConfig.Environment.IISApplicationPoolName;
        }
Exemplo n.º 6
0
        static void UpdateWebConfigs(NippsModule nippsModule)
        {
            string configName;
            string configText;
            string[] iisLocalAdminParts = NippsConfig.Environment.IISLocalAdmin.Split('/');
            string[] sqlLocalAdminParts = NippsConfig.Environment.SqlLocalAdmin.Split('/');
            string[] sqlUserParts = NippsConfig.Environment.SqlUser.Split('/');
            bool isDeployManager = nippsModule.ApplicationName.Equals("Netas.Nipps.DeployManager.Service");

            configName = TempFolder + nippsModule.ApplicationName + @"\web.config";
            if (!File.Exists(configName))
                return;

            Console.WriteLine("opening " + configName);

            configText = File.ReadAllText(configName);

            //system.web>identity only one identity must be defined in there
            Console.WriteLine("checking and updating if exist system.web>indendity");
            if (RegexIdentity.Match(configText).Success)
                configText = RegexIdentity.Replace(configText,
                    string.Format(IdentityFormat, iisLocalAdminParts[0], iisLocalAdminParts[1]));

            //connectionstrings: only one identity must be defined in there 
            Console.WriteLine("checking and updating if exist connectionstrings");
            if (RegexConnectionStringUserID.Match(configText).Success)
                configText = RegexConnectionStringUserID.Replace(configText, string.Format(ConnectionStringUserIDFormat, isDeployManager ? sqlLocalAdminParts[0] : sqlUserParts[0]));

            if (RegexConnectionStringPassword.Match(configText).Success)
                configText = RegexConnectionStringPassword.Replace(configText, string.Format(ConnectionStringPasswordFormat, isDeployManager ? sqlLocalAdminParts[1] : sqlUserParts[1]));

            if (RegexConnectionStringDataSource.Match(configText).Success)
                configText = RegexConnectionStringDataSource.Replace(configText, string.Format(ConnectionStringDataSourceFormat, NippsConfig.Environment.SqlHost));

            if (RegexConnectionStringInitialCatalog.Match(configText).Success)
                configText = RegexConnectionStringInitialCatalog.Replace(configText, string.Format(ConnectionStringInitialCatalogFormat, NippsConfig.Environment.SqlDatabase));

            //appsettings>may be more than one in there
            Console.WriteLine("checking and updating if exist applicationsettings>***serviceurls");
            if (RegexServiceUrls.Matches(configText).Count > 0)
                configText = RegexServiceUrls.Replace(configText, string.Format(ServiceUrlFormat, NippsConfig.Environment.IISSMHostPort));


            File.WriteAllText(configName, configText);

        }