From 0cafa26d5985df8890d868ea1f77a50a885b351e Mon Sep 17 00:00:00 2001 From: Schwirg László Date: Mon, 8 Mar 2021 14:46:19 +0100 Subject: [PATCH] InstallManager létrehozása és alap funkciók hozzáadása --- Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs | 15 +++++++++++++-- Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Membership.cs | 1 - Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs | 35 +++++++++++++++++++++++++++++++++++ Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs | 13 +++++-------- Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs | 8 ++++---- Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs | 32 +++++++++++++++++++++++++++++++- Vrh.Log4Pro.MaintenanceConsole/Program.cs | 2 ++ Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj | 3 +++ 10 files changed, 339 insertions(+), 16 deletions(-) create mode 100644 Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs create mode 100644 Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs diff --git a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs index 1b0d388..b90a340 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs @@ -206,6 +206,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS { public const string CMD_WEBAPPS = "-WEBAPPS"; public static class Register { public const string KEY = "WAR"; } + public static class ConfigureIIS { public const string KEY = "IIS"; } public static class Unregister { public const string KEY = "WAU"; } public static class SetImpersonateIdentity { public const string KEY = "WAI"; } public static class PoolStart { public const string KEY = "APS"; } @@ -282,14 +283,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS public static class RelocatePhysicalFiles { public const string KEY = "COP"; } } } + + public static class InstallManager + { + public const string KEY = "INM"; + public static class Functions + { + public static class EnvironmentInstall { public const string KEY = "ENV"; } + public static class RestartServer { public const string KEY = "RST"; } + public static class ConfigureIIS { public const string KEY = "IIS"; } + } + } public static class MaintenanceToolManager { public const string KEY = "TOL"; public static class Functions { public static class RegexTester { public const string KEY = "RGX"; } - public static class Tool1 { public const string KEY = "TL1"; } - public static class Tool2 { public const string KEY = "TL2"; } + public static class Tool { public const string KEY = "TOL"; } } } } diff --git a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Membership.cs b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Membership.cs index 8e80f48..c832174 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Membership.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Membership.cs @@ -421,7 +421,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS /// public static VRH.Common.ReturnInfoJSON RolesToUser(string rolenamecommalist, string usernamecommalist) { - DAL.RoleGroup urg; ReturnInfoJSON result = new ReturnInfoJSON() { ReturnMessage = "Assignment was successful!" }; try { diff --git a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs index 28ab78e..df3d22b 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs @@ -174,5 +174,40 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS if (extension == null) { extension = ".tmp"; } return Path.Combine(directorypath, DateTime.Now.ToString($"TMP_yyyyMMddHHmmssfffffff.{extension}")); } + public static void ShutDown(ShutDownMode oparation) + { + string filename = string.Empty; + string arguments = string.Empty; + switch (oparation) + { + case ShutDownMode.ShutDown: + filename = "shutdown.exe"; + arguments = "-s"; + break; + case ShutDownMode.Restart: + filename = "shutdown.exe"; + arguments = "-r"; + break; + case ShutDownMode.Logoff: + filename = "shutdown.exe"; + arguments = "-l"; + break; + case ShutDownMode.Lock: + filename = "Rundll32.exe"; + arguments = "User32.dll, LockWorkStation"; + break; + case ShutDownMode.Hibernation: + filename = @"%windir%\system32\rundll32.exe"; + arguments = "PowrProf.dll, SetSuspendState"; + break; + case ShutDownMode.Sleep: + filename = "Rundll32.exe"; + arguments = "powrprof.dll, SetSuspendState 0,1,0"; + break; + } + ProcessStartInfo startinfo = new ProcessStartInfo(filename, arguments); + Process.Start(startinfo); + } + public enum ShutDownMode { Sleep, Hibernation,Lock,Logoff,Restart,ShutDown,} } } diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs new file mode 100644 index 0000000..ac04e4a --- /dev/null +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs @@ -0,0 +1,163 @@ +using System; +using System.IO; +using System.Configuration.Install; +using System.Collections.Generic; +using System.Linq; +using System.ServiceProcess; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +using Microsoft.Web.Administration; +using System.Management; +using System.Diagnostics; + +using Vrh.Log4Pro.MaintenanceConsole.MenuNS; +using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; +using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS; +using Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS; + + +using Vrh.XmlProcessing; +using System.Xml.Linq; +using System.Text.RegularExpressions; + +namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS +{ + #region MaintenanceTools class + public static class InstallManager + { + private const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_INSTALLMANAGER;"; + private const string XMLCONNECTIONSTRING_DEFAULT = "file=Config.Xml;element=InstallManager;"; + + #region Execute + public static object Execute(object o1 = null, object o2 = null) + { + var args = (o1 as Menu.ExecutorParameter).Args; + string xmlcs = XMLCONNECTIONSTRING; + var config = new InstallManagerXmlParser(xmlcs, "", "hu-HU"); + + var epWA = WebApplicationManager.GetExecutorParameter(args); + + var menufunctions = new Menu("Install Manager", "Select function!") + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.Functions.EnvironmentInstall.KEY, "Environment install", EnvironmentInstall, new Menu.ExecutorParameter(cfg: config, null))) + .AddMenuItem(new Menu.Item(CLP.Module.WebApplicationManager.Function.ConfigureIIS.KEY, "Configure IIS Default App Pool", WebApplicationManager.ConfigIIS, epWA)) + .AddMenuItem(new Menu.ItemSeparator()) + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.Functions.RestartServer.KEY, "Restart server", RestartServer, new Menu.ExecutorParameter(cfg: config, null))) + .SetSelectionMode(Menu.SelectionMode.Single); + menufunctions.ExecuteMenu(); + return null; + } + #endregion Execute + + #region First level Executors with UI + #region EnvironmentInstall + private static object EnvironmentInstall(object parameter, object o) + { + var config = (parameter as Menu.ExecutorParameter).GetConfig(); + InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp; + InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os; + string answer; + foreach (var wfg in config.WindowsFeatureGroups) + { + grp = wfg.Group; + os = wfg.OS; + answer = ColorConsole.ReadLine($"Do You want to configure feature group '{grp}' for os '{os}'?(Y/N)", ConsoleColor.Yellow); + if (answer.ToUpper() == "Y") { EnableWindowsFeatures(grp, os, config); } + }; + return o; + } + private static void EnableWindowsFeatures(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp + , InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os, InstallManagerXmlParser environmentinstallconfig) + { + ColorConsole.WriteLine($"Enableing {grp} features for os {os}...",ConsoleColor.Yellow); + foreach (var fn in environmentinstallconfig.GetFeatureList(os,grp)) + { + if (string.IsNullOrWhiteSpace(fn) || fn.StartsWith("#")) { continue; } + ColorConsole.WriteLine($"Enableing {grp} features for os {os}. Feature name: {fn}.",ConsoleColor.Yellow); + string response; + switch (os) + { + case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016: + response = Tools.ExecuteAndGetStdIo("Install-WindowsFeature", $"-Name {fn} -IncludeAllSubFeature -IncludeManagementTools"); + break; + case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.W7: + response = Tools.ExecuteAndGetStdIo("dism", $"/online /Enable-Feature /FeatureName:{fn}"); + break; + default: break; + } + } + } + #endregion EnvironmentInstall + #region Restart server + private static object RestartServer(object parameter, object o) + { + var config = parameter as InstallManagerXmlParser; + string answer = ColorConsole.ReadLine($"Do You want to restart server?(Y/N)", ConsoleColor.Yellow); + if (answer.ToUpper() == "Y") + { + ColorConsole.WriteLine($"Restarting...", ConsoleColor.Yellow); + Tools.ShutDown(Tools.ShutDownMode.Restart); + } + return o; + } + #endregion Restart server + + #endregion First level Executors with UI + } + #endregion MaintenanceTools class + + #region InstallManagerXmlParser class + public class InstallManagerXmlParser: XmlParser + { + public InstallManagerXmlParser(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) + { + WindowsFeatureGroups = new List(); + foreach (var wfgXml in GetAllXElements(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall),nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList))) + { + try { WindowsFeatureGroups.Add(new WindowsFeatures(wfgXml)); } + catch { } + } + } + public class WindowsFeatures: XmlLinqBase + { + public WindowsFeatures(XElement wfgXml) + { + OS = GetValue(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS), wfgXml, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.DEFAULT); + Group = GetValue(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group), wfgXml, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.DEFAULT); + FeatureList = wfgXml.Value?.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList(); + } + public InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values OS; + public InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values Group; + public List FeatureList; + } + public List WindowsFeatureGroups; + public List GetFeatureList(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values group) { return WindowsFeatureGroups?.FirstOrDefault(x => x.OS == os && x.Group == group)?.FeatureList; } + #region XmlStructure + public static class XmlStructure + { + public static class EnvironmentInstall + { + public static class WindowsFeatureList + { + public static class Attributes + { + public static class OS + { + public enum Values { WS2016, W7, } + public const Values DEFAULT = Values.WS2016; + } + public static class Group + { + public enum Values { ALL, IIS, MSMQ, DOTNET, } + public const Values DEFAULT = Values.IIS; + } + } + } + } + } + #endregion XmlStructure + } + #endregion InstallManagerXmlParser class +} diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs new file mode 100644 index 0000000..a0aa1ab --- /dev/null +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Messaging; +using System.Text; +using System.Threading.Tasks; + +namespace Vrh.Log4Pro.MaintenanceConsole +{ + class Manager___MSMQManager + { + void CreateQueue() + { + string ccs = @"localhost\private$\ljskskin"; + string msmqservername = ""; + bool msmqprivate = true; + string msmqname = ""; + string msmqFullname = msmqservername + "\\" + (msmqprivate ? "private$\\" : msmqname); + if (!MessageQueue.Exists(ccs)) { MessageQueue.Create(msmqFullname); } + } + void DeleteQueue() + { + string ccs = @"localhost\private$\ljskskin"; + if (MessageQueue.Exists(ccs)) { MessageQueue.Delete(ccs); } + } + void Purge() + { + string ccs = @"localhost\private$\ljskskin"; + var msmq = new MessageQueue(ccs); + msmq.Purge(); + } + void Peek() + { + string ccs = @"localhost\private$\ljskskin"; + var msmq = new MessageQueue(ccs); + + Message m = msmq.Peek(new TimeSpan(0)); + m.BodyStream.Position = 0; + var sr = new System.IO.StreamReader(m.BodyStream); + var label = m.Label; + var body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); + } + void Read() + { + string ccs = @"localhost\private$\ljskskin"; + var msmq = new MessageQueue(ccs); + var frmA = new System.Messaging.ActiveXMessageFormatter(); + var frmB = new System.Messaging.BinaryMessageFormatter(); + var frmX = new System.Messaging.XmlMessageFormatter(); + msmq.Formatter = frmA; + + Message m = msmq.Receive(new TimeSpan(0)); + m.BodyStream.Position = 0; + + Encoding enc = System.Text.Encoding.UTF8; + enc = System.Text.Encoding.UTF7; + enc = System.Text.Encoding.UTF32; + enc = System.Text.Encoding.Unicode; + enc = System.Text.Encoding.BigEndianUnicode; + enc = System.Text.Encoding.ASCII; + enc = System.Text.Encoding.Default; + var sr = new System.IO.StreamReader(m.BodyStream, enc); + var label = m.Label; + var body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); + } + void Send() + { + string ccs = @"localhost\private$\ljskskin"; + + var frmA = new System.Messaging.ActiveXMessageFormatter(); + var msmq = new MessageQueue(ccs); + msmq.Formatter = frmA; + + string messagetosend = ""; + string messagelabel = ""; + + Encoding enc = System.Text.Encoding.UTF8; + byte[] encodedmessage = enc.GetBytes(messagetosend); + + msmq.Send(encodedmessage, messagelabel); + } + } +} diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs index 02de6c4..5bd36cf 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs @@ -15,6 +15,8 @@ using System.Diagnostics; using Vrh.Log4Pro.MaintenanceConsole.MenuNS; using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS; + using Vrh.XmlProcessing; using System.Xml.Linq; @@ -37,8 +39,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS var menufunctions = new Menu("Maintenance Tools", "Select function!") .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.RegexTester.KEY, "Regex tester", RegexTester,new Menu.ExecutorParameter(cfg:config))) - .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool1.KEY, "Tool #1", Tool1, new Menu.ExecutorParameter(cfg: config, null))) - .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool2.KEY, "Tool #2", Tool2, new Menu.ExecutorParameter(cfg: config, null))) + .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool.KEY, "Tool sample", Tool2, new Menu.ExecutorParameter(cfg: config, null))) .SetSelectionMode(Menu.SelectionMode.Single); menufunctions.ExecuteMenu(); return null; @@ -80,13 +81,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS return o; } #endregion RegexTester + #region Tool templates - private static object Tool1(object parameter, object o) - { - var config = parameter as MaintenanceToolsXmlProcessor; - ColorConsole.ReadLine($"{nameof(Tool1)} is not ready yet...",ConsoleColor.Yellow); - return o; - } private static object Tool2(object parameter, object o) { var config = parameter as MaintenanceToolsXmlProcessor; @@ -102,6 +98,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS public class MaintenanceToolsXmlProcessor : XmlParser { public XElement RegexpTesterConfig; + #region constructor public MaintenanceToolsXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null) { diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs index 5e1017a..31325f1 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs @@ -67,10 +67,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS if (enabletabledatabackup) { SQLDataBaseManagerCore.BackupSqlData(sqld, timestamp); } } } - #endregion Execute + #endregion Execute - #region First level Executors with UI - private static object CreateDataScripts(object parameter, object o) + #region First level Executors with UI + private static object CreateDataScripts(object parameter, object o) { var config = (parameter as Menu.ExecutorParameter).GetConfig(); var args = (parameter as Menu.ExecutorParameter).Args; @@ -937,7 +937,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS #endregion BackupSqlData #endregion private methods } - #endregion class SQLDataBaseManager +#endregion class SQLDataBaseManager #region SQLDataBaseManager class public class SQLDataBaseManagerXmlProcessor : XmlParser diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs index f3c0ee7..c841ae5 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs @@ -13,6 +13,7 @@ using System.Diagnostics; using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; using Vrh.Log4Pro.MaintenanceConsole.MenuNS; using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS; using Vrh.XmlProcessing; using VRH.Common; @@ -23,9 +24,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS #region WebApplicationManager public static class WebApplicationManager { - private const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_WEBAPPLICATIONMANAGER;"; + internal const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_WEBAPPLICATIONMANAGER;"; private const string XMLCONNECTIONSTRING_DEFAULT = "file=Config.Xml;element=WebApplications;"; + public static Menu.ExecutorParameter GetExecutorParameter(string[] args) + { + var configWA = new WebApplicationManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU"); + var epWA = new Menu.ExecutorParameter(configWA, args); + return epWA; + } + #region public method: Execute public static object Execute(object o1=null,object o2=null) { @@ -286,6 +294,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS ColorConsole.WriteLine($"{d.Xml_SiteName} {successstr}."); } } + + public static object ConfigIIS(object parameters, object o) + { + var config = (parameters as Menu.ExecutorParameter).GetConfig(); + var args = (parameters as Menu.ExecutorParameter).Args; + + ColorConsole.WriteLine($"Configuring IIS default web application...",ConsoleColor.Yellow); + WebApplicationManagerCore.ConfigIIS(); + return o; + } private static object Register(object parameters, object o) { var config = (parameters as Menu.ExecutorParameter).GetConfig(); @@ -613,6 +631,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS } #endregion private method: CollectWebAppInfo + public static void ConfigIIS() + { + string response = Tools.ExecuteAndGetStdIo(@"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" ,@"/i"); + using (ServerManager serverManager = new ServerManager()) + { + ApplicationPool pool = serverManager.ApplicationPools["DefaultAppPool"]; + pool.Enable32BitAppOnWin64 = true; + pool.ManagedRuntimeVersion = "v4.0"; + CommitChanges(serverManager, pool.Name); + } + } + #region private method:RegisterWebApplication public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode) { diff --git a/Vrh.Log4Pro.MaintenanceConsole/Program.cs b/Vrh.Log4Pro.MaintenanceConsole/Program.cs index c90e42d..041ef89 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Program.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Program.cs @@ -21,6 +21,7 @@ using Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS; using Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS; using Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS; using Vrh.Log4Pro.MaintenanceConsole.UserManagerNS; +using Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS; using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; @@ -66,6 +67,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole .AddMenuItem(new Menu.Item(CLP.Module.BackupPackageManager.KEY, "Backup Package Manager", BackupPackageManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.SQLDataBaseManager.KEY, "SQL Database Manager", SQLDataBaseManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.Item(CLP.Module.Log4ProUserManager.KEY, "Log4Pro User Manager", UserManager.Execute, new Menu.ExecutorParameter(args: args))) + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.KEY, "Install Manager", InstallManager.Execute, new Menu.ExecutorParameter(args: args))) .AddMenuItem(new Menu.ItemSeparator('-')) .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.KEY, "Maintenance tools", MaintenanceToolManager.Execute, new Menu.ExecutorParameter(args: args))) .SetMenuHeaderDisplayer(DisplayComputerInfo) diff --git a/Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj b/Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj index 1862d05..b78c8df 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj +++ b/Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj @@ -216,6 +216,7 @@ ..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll + ..\packages\System.Net.Http.4.1.0\lib\net46\System.Net.Http.dll @@ -291,6 +292,8 @@ + + -- libgit2 0.21.2