Commit 0cafa26d5985df8890d868ea1f77a50a885b351e

Authored by Schwirg László
1 parent 2ff9a39c

InstallManager létrehozása és alap funkciók hozzáadása

Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs
... ... @@ -206,6 +206,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS
206 206 {
207 207 public const string CMD_WEBAPPS = "-WEBAPPS";
208 208 public static class Register { public const string KEY = "WAR"; }
  209 + public static class ConfigureIIS { public const string KEY = "IIS"; }
209 210 public static class Unregister { public const string KEY = "WAU"; }
210 211 public static class SetImpersonateIdentity { public const string KEY = "WAI"; }
211 212 public static class PoolStart { public const string KEY = "APS"; }
... ... @@ -282,14 +283,24 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS
282 283 public static class RelocatePhysicalFiles { public const string KEY = "COP"; }
283 284 }
284 285 }
  286 +
  287 + public static class InstallManager
  288 + {
  289 + public const string KEY = "INM";
  290 + public static class Functions
  291 + {
  292 + public static class EnvironmentInstall { public const string KEY = "ENV"; }
  293 + public static class RestartServer { public const string KEY = "RST"; }
  294 + public static class ConfigureIIS { public const string KEY = "IIS"; }
  295 + }
  296 + }
285 297 public static class MaintenanceToolManager
286 298 {
287 299 public const string KEY = "TOL";
288 300 public static class Functions
289 301 {
290 302 public static class RegexTester { public const string KEY = "RGX"; }
291   - public static class Tool1 { public const string KEY = "TL1"; }
292   - public static class Tool2 { public const string KEY = "TL2"; }
  303 + public static class Tool { public const string KEY = "TOL"; }
293 304 }
294 305 }
295 306 }
... ...
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Membership.cs
... ... @@ -421,7 +421,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS
421 421 /// <returns></returns>
422 422 public static VRH.Common.ReturnInfoJSON RolesToUser(string rolenamecommalist, string usernamecommalist)
423 423 {
424   - DAL.RoleGroup urg;
425 424 ReturnInfoJSON result = new ReturnInfoJSON() { ReturnMessage = "Assignment was successful!" };
426 425 try
427 426 {
... ...
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs
... ... @@ -174,5 +174,40 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS
174 174 if (extension == null) { extension = ".tmp"; }
175 175 return Path.Combine(directorypath, DateTime.Now.ToString($"TMP_yyyyMMddHHmmssfffffff.{extension}"));
176 176 }
  177 + public static void ShutDown(ShutDownMode oparation)
  178 + {
  179 + string filename = string.Empty;
  180 + string arguments = string.Empty;
  181 + switch (oparation)
  182 + {
  183 + case ShutDownMode.ShutDown:
  184 + filename = "shutdown.exe";
  185 + arguments = "-s";
  186 + break;
  187 + case ShutDownMode.Restart:
  188 + filename = "shutdown.exe";
  189 + arguments = "-r";
  190 + break;
  191 + case ShutDownMode.Logoff:
  192 + filename = "shutdown.exe";
  193 + arguments = "-l";
  194 + break;
  195 + case ShutDownMode.Lock:
  196 + filename = "Rundll32.exe";
  197 + arguments = "User32.dll, LockWorkStation";
  198 + break;
  199 + case ShutDownMode.Hibernation:
  200 + filename = @"%windir%\system32\rundll32.exe";
  201 + arguments = "PowrProf.dll, SetSuspendState";
  202 + break;
  203 + case ShutDownMode.Sleep:
  204 + filename = "Rundll32.exe";
  205 + arguments = "powrprof.dll, SetSuspendState 0,1,0";
  206 + break;
  207 + }
  208 + ProcessStartInfo startinfo = new ProcessStartInfo(filename, arguments);
  209 + Process.Start(startinfo);
  210 + }
  211 + public enum ShutDownMode { Sleep, Hibernation,Lock,Logoff,Restart,ShutDown,}
177 212 }
178 213 }
... ...
Vrh.Log4Pro.MaintenanceConsole/Manager - InstallManager.cs 0 → 100644
... ... @@ -0,0 +1,163 @@
  1 +using System;
  2 +using System.IO;
  3 +using System.Configuration.Install;
  4 +using System.Collections.Generic;
  5 +using System.Linq;
  6 +using System.ServiceProcess;
  7 +using System.Text;
  8 +using System.Threading;
  9 +using System.Threading.Tasks;
  10 +
  11 +using Microsoft.Web.Administration;
  12 +using System.Management;
  13 +using System.Diagnostics;
  14 +
  15 +using Vrh.Log4Pro.MaintenanceConsole.MenuNS;
  16 +using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS;
  17 +using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
  18 +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS;
  19 +using Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS;
  20 +
  21 +
  22 +using Vrh.XmlProcessing;
  23 +using System.Xml.Linq;
  24 +using System.Text.RegularExpressions;
  25 +
  26 +namespace Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS
  27 +{
  28 + #region MaintenanceTools class
  29 + public static class InstallManager
  30 + {
  31 + private const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_INSTALLMANAGER;";
  32 + private const string XMLCONNECTIONSTRING_DEFAULT = "file=Config.Xml;element=InstallManager;";
  33 +
  34 + #region Execute
  35 + public static object Execute(object o1 = null, object o2 = null)
  36 + {
  37 + var args = (o1 as Menu.ExecutorParameter).Args;
  38 + string xmlcs = XMLCONNECTIONSTRING;
  39 + var config = new InstallManagerXmlParser(xmlcs, "", "hu-HU");
  40 +
  41 + var epWA = WebApplicationManager.GetExecutorParameter(args);
  42 +
  43 + var menufunctions = new Menu("Install Manager", "Select function!")
  44 + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.Functions.EnvironmentInstall.KEY, "Environment install", EnvironmentInstall, new Menu.ExecutorParameter(cfg: config, null)))
  45 + .AddMenuItem(new Menu.Item(CLP.Module.WebApplicationManager.Function.ConfigureIIS.KEY, "Configure IIS Default App Pool", WebApplicationManager.ConfigIIS, epWA))
  46 + .AddMenuItem(new Menu.ItemSeparator())
  47 + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.Functions.RestartServer.KEY, "Restart server", RestartServer, new Menu.ExecutorParameter(cfg: config, null)))
  48 + .SetSelectionMode(Menu.SelectionMode.Single);
  49 + menufunctions.ExecuteMenu();
  50 + return null;
  51 + }
  52 + #endregion Execute
  53 +
  54 + #region First level Executors with UI
  55 + #region EnvironmentInstall
  56 + private static object EnvironmentInstall(object parameter, object o)
  57 + {
  58 + var config = (parameter as Menu.ExecutorParameter).GetConfig<InstallManagerXmlParser>();
  59 + InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp;
  60 + InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os;
  61 + string answer;
  62 + foreach (var wfg in config.WindowsFeatureGroups)
  63 + {
  64 + grp = wfg.Group;
  65 + os = wfg.OS;
  66 + answer = ColorConsole.ReadLine($"Do You want to configure feature group '{grp}' for os '{os}'?(Y/N)", ConsoleColor.Yellow);
  67 + if (answer.ToUpper() == "Y") { EnableWindowsFeatures(grp, os, config); }
  68 + };
  69 + return o;
  70 + }
  71 + private static void EnableWindowsFeatures(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values grp
  72 + , InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values os, InstallManagerXmlParser environmentinstallconfig)
  73 + {
  74 + ColorConsole.WriteLine($"Enableing {grp} features for os {os}...",ConsoleColor.Yellow);
  75 + foreach (var fn in environmentinstallconfig.GetFeatureList(os,grp))
  76 + {
  77 + if (string.IsNullOrWhiteSpace(fn) || fn.StartsWith("#")) { continue; }
  78 + ColorConsole.WriteLine($"Enableing {grp} features for os {os}. Feature name: {fn}.",ConsoleColor.Yellow);
  79 + string response;
  80 + switch (os)
  81 + {
  82 + case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.WS2016:
  83 + response = Tools.ExecuteAndGetStdIo("Install-WindowsFeature", $"-Name {fn} -IncludeAllSubFeature -IncludeManagementTools");
  84 + break;
  85 + case InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values.W7:
  86 + response = Tools.ExecuteAndGetStdIo("dism", $"/online /Enable-Feature /FeatureName:{fn}");
  87 + break;
  88 + default: break;
  89 + }
  90 + }
  91 + }
  92 + #endregion EnvironmentInstall
  93 + #region Restart server
  94 + private static object RestartServer(object parameter, object o)
  95 + {
  96 + var config = parameter as InstallManagerXmlParser;
  97 + string answer = ColorConsole.ReadLine($"Do You want to restart server?(Y/N)", ConsoleColor.Yellow);
  98 + if (answer.ToUpper() == "Y")
  99 + {
  100 + ColorConsole.WriteLine($"Restarting...", ConsoleColor.Yellow);
  101 + Tools.ShutDown(Tools.ShutDownMode.Restart);
  102 + }
  103 + return o;
  104 + }
  105 + #endregion Restart server
  106 +
  107 + #endregion First level Executors with UI
  108 + }
  109 + #endregion MaintenanceTools class
  110 +
  111 + #region InstallManagerXmlParser class
  112 + public class InstallManagerXmlParser: XmlParser
  113 + {
  114 + public InstallManagerXmlParser(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null)
  115 + {
  116 + WindowsFeatureGroups = new List<WindowsFeatures>();
  117 + foreach (var wfgXml in GetAllXElements(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall),nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList)))
  118 + {
  119 + try { WindowsFeatureGroups.Add(new WindowsFeatures(wfgXml)); }
  120 + catch { }
  121 + }
  122 + }
  123 + public class WindowsFeatures: XmlLinqBase
  124 + {
  125 + public WindowsFeatures(XElement wfgXml)
  126 + {
  127 + OS = GetValue(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS), wfgXml, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.DEFAULT);
  128 + Group = GetValue(nameof(InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group), wfgXml, InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.DEFAULT);
  129 + FeatureList = wfgXml.Value?.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList();
  130 + }
  131 + public InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.OS.Values OS;
  132 + public InstallManagerXmlParser.XmlStructure.EnvironmentInstall.WindowsFeatureList.Attributes.Group.Values Group;
  133 + public List<string> FeatureList;
  134 + }
  135 + public List<WindowsFeatures> WindowsFeatureGroups;
  136 + public List<string> 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; }
  137 + #region XmlStructure
  138 + public static class XmlStructure
  139 + {
  140 + public static class EnvironmentInstall
  141 + {
  142 + public static class WindowsFeatureList
  143 + {
  144 + public static class Attributes
  145 + {
  146 + public static class OS
  147 + {
  148 + public enum Values { WS2016, W7, }
  149 + public const Values DEFAULT = Values.WS2016;
  150 + }
  151 + public static class Group
  152 + {
  153 + public enum Values { ALL, IIS, MSMQ, DOTNET, }
  154 + public const Values DEFAULT = Values.IIS;
  155 + }
  156 + }
  157 + }
  158 + }
  159 + }
  160 + #endregion XmlStructure
  161 + }
  162 + #endregion InstallManagerXmlParser class
  163 +}
... ...
Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs 0 → 100644
... ... @@ -0,0 +1,83 @@
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Messaging;
  5 +using System.Text;
  6 +using System.Threading.Tasks;
  7 +
  8 +namespace Vrh.Log4Pro.MaintenanceConsole
  9 +{
  10 + class Manager___MSMQManager
  11 + {
  12 + void CreateQueue()
  13 + {
  14 + string ccs = @"localhost\private$\ljskskin";
  15 + string msmqservername = "";
  16 + bool msmqprivate = true;
  17 + string msmqname = "";
  18 + string msmqFullname = msmqservername + "\\" + (msmqprivate ? "private$\\" : msmqname);
  19 + if (!MessageQueue.Exists(ccs)) { MessageQueue.Create(msmqFullname); }
  20 + }
  21 + void DeleteQueue()
  22 + {
  23 + string ccs = @"localhost\private$\ljskskin";
  24 + if (MessageQueue.Exists(ccs)) { MessageQueue.Delete(ccs); }
  25 + }
  26 + void Purge()
  27 + {
  28 + string ccs = @"localhost\private$\ljskskin";
  29 + var msmq = new MessageQueue(ccs);
  30 + msmq.Purge();
  31 + }
  32 + void Peek()
  33 + {
  34 + string ccs = @"localhost\private$\ljskskin";
  35 + var msmq = new MessageQueue(ccs);
  36 +
  37 + Message m = msmq.Peek(new TimeSpan(0));
  38 + m.BodyStream.Position = 0;
  39 + var sr = new System.IO.StreamReader(m.BodyStream);
  40 + var label = m.Label;
  41 + var body = sr.ReadToEnd().Replace(((char)0).ToString(), "");
  42 + }
  43 + void Read()
  44 + {
  45 + string ccs = @"localhost\private$\ljskskin";
  46 + var msmq = new MessageQueue(ccs);
  47 + var frmA = new System.Messaging.ActiveXMessageFormatter();
  48 + var frmB = new System.Messaging.BinaryMessageFormatter();
  49 + var frmX = new System.Messaging.XmlMessageFormatter();
  50 + msmq.Formatter = frmA;
  51 +
  52 + Message m = msmq.Receive(new TimeSpan(0));
  53 + m.BodyStream.Position = 0;
  54 +
  55 + Encoding enc = System.Text.Encoding.UTF8;
  56 + enc = System.Text.Encoding.UTF7;
  57 + enc = System.Text.Encoding.UTF32;
  58 + enc = System.Text.Encoding.Unicode;
  59 + enc = System.Text.Encoding.BigEndianUnicode;
  60 + enc = System.Text.Encoding.ASCII;
  61 + enc = System.Text.Encoding.Default;
  62 + var sr = new System.IO.StreamReader(m.BodyStream, enc);
  63 + var label = m.Label;
  64 + var body = sr.ReadToEnd().Replace(((char)0).ToString(), "");
  65 + }
  66 + void Send()
  67 + {
  68 + string ccs = @"localhost\private$\ljskskin";
  69 +
  70 + var frmA = new System.Messaging.ActiveXMessageFormatter();
  71 + var msmq = new MessageQueue(ccs);
  72 + msmq.Formatter = frmA;
  73 +
  74 + string messagetosend = "";
  75 + string messagelabel = "";
  76 +
  77 + Encoding enc = System.Text.Encoding.UTF8;
  78 + byte[] encodedmessage = enc.GetBytes(messagetosend);
  79 +
  80 + msmq.Send(encodedmessage, messagelabel);
  81 + }
  82 + }
  83 +}
... ...
Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs
... ... @@ -15,6 +15,8 @@ using System.Diagnostics;
15 15 using Vrh.Log4Pro.MaintenanceConsole.MenuNS;
16 16 using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS;
17 17 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
  18 +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS;
  19 +
18 20  
19 21 using Vrh.XmlProcessing;
20 22 using System.Xml.Linq;
... ... @@ -37,8 +39,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
37 39  
38 40 var menufunctions = new Menu("Maintenance Tools", "Select function!")
39 41 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.RegexTester.KEY, "Regex tester", RegexTester,new Menu.ExecutorParameter(cfg:config)))
40   - .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool1.KEY, "Tool #1", Tool1, new Menu.ExecutorParameter(cfg: config, null)))
41   - .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool2.KEY, "Tool #2", Tool2, new Menu.ExecutorParameter(cfg: config, null)))
  42 + .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool.KEY, "Tool sample", Tool2, new Menu.ExecutorParameter(cfg: config, null)))
42 43 .SetSelectionMode(Menu.SelectionMode.Single);
43 44 menufunctions.ExecuteMenu();
44 45 return null;
... ... @@ -80,13 +81,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
80 81 return o;
81 82 }
82 83 #endregion RegexTester
  84 +
83 85 #region Tool templates
84   - private static object Tool1(object parameter, object o)
85   - {
86   - var config = parameter as MaintenanceToolsXmlProcessor;
87   - ColorConsole.ReadLine($"{nameof(Tool1)} is not ready yet...",ConsoleColor.Yellow);
88   - return o;
89   - }
90 86 private static object Tool2(object parameter, object o)
91 87 {
92 88 var config = parameter as MaintenanceToolsXmlProcessor;
... ... @@ -102,6 +98,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
102 98 public class MaintenanceToolsXmlProcessor : XmlParser
103 99 {
104 100 public XElement RegexpTesterConfig;
  101 +
105 102 #region constructor
106 103 public MaintenanceToolsXmlProcessor(string xmlcs, string basefolder, string lcid) : base(xmlcs, basefolder, lcid, null)
107 104 {
... ...
Vrh.Log4Pro.MaintenanceConsole/Manager - SQLDataBaseManager.cs
... ... @@ -67,10 +67,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
67 67 if (enabletabledatabackup) { SQLDataBaseManagerCore.BackupSqlData(sqld, timestamp); }
68 68 }
69 69 }
70   - #endregion Execute
  70 + #endregion Execute
71 71  
72   - #region First level Executors with UI
73   - private static object CreateDataScripts(object parameter, object o)
  72 + #region First level Executors with UI
  73 + private static object CreateDataScripts(object parameter, object o)
74 74 {
75 75 var config = (parameter as Menu.ExecutorParameter).GetConfig<SQLDataBaseManagerXmlProcessor>();
76 76 var args = (parameter as Menu.ExecutorParameter).Args;
... ... @@ -937,7 +937,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.SQLDataBaseManagerNS
937 937 #endregion BackupSqlData
938 938 #endregion private methods
939 939 }
940   - #endregion class SQLDataBaseManager
  940 +#endregion class SQLDataBaseManager
941 941  
942 942 #region SQLDataBaseManager class
943 943 public class SQLDataBaseManagerXmlProcessor : XmlParser
... ...
Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs
... ... @@ -13,6 +13,7 @@ using System.Diagnostics;
13 13 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
14 14 using Vrh.Log4Pro.MaintenanceConsole.MenuNS;
15 15 using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS;
  16 +using Vrh.Log4Pro.MaintenanceConsole.ToolsNS;
16 17  
17 18 using Vrh.XmlProcessing;
18 19 using VRH.Common;
... ... @@ -23,9 +24,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
23 24 #region WebApplicationManager
24 25 public static class WebApplicationManager
25 26 {
26   - private const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_WEBAPPLICATIONMANAGER;";
  27 + internal const string XMLCONNECTIONSTRING = "config=MAINTENANCECONSOLE_WEBAPPLICATIONMANAGER;";
27 28 private const string XMLCONNECTIONSTRING_DEFAULT = "file=Config.Xml;element=WebApplications;";
28 29  
  30 + public static Menu.ExecutorParameter GetExecutorParameter(string[] args)
  31 + {
  32 + var configWA = new WebApplicationManagerXmlProcessor(XMLCONNECTIONSTRING, "", "hu-HU");
  33 + var epWA = new Menu.ExecutorParameter(configWA, args);
  34 + return epWA;
  35 + }
  36 +
29 37 #region public method: Execute
30 38 public static object Execute(object o1=null,object o2=null)
31 39 {
... ... @@ -286,6 +294,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
286 294 ColorConsole.WriteLine($"{d.Xml_SiteName} {successstr}.");
287 295 }
288 296 }
  297 +
  298 + public static object ConfigIIS(object parameters, object o)
  299 + {
  300 + var config = (parameters as Menu.ExecutorParameter).GetConfig<WebApplicationManagerXmlProcessor>();
  301 + var args = (parameters as Menu.ExecutorParameter).Args;
  302 +
  303 + ColorConsole.WriteLine($"Configuring IIS default web application...",ConsoleColor.Yellow);
  304 + WebApplicationManagerCore.ConfigIIS();
  305 + return o;
  306 + }
289 307 private static object Register(object parameters, object o)
290 308 {
291 309 var config = (parameters as Menu.ExecutorParameter).GetConfig<WebApplicationManagerXmlProcessor>();
... ... @@ -613,6 +631,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
613 631 }
614 632 #endregion private method: CollectWebAppInfo
615 633  
  634 + public static void ConfigIIS()
  635 + {
  636 + string response = Tools.ExecuteAndGetStdIo(@"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" ,@"/i");
  637 + using (ServerManager serverManager = new ServerManager())
  638 + {
  639 + ApplicationPool pool = serverManager.ApplicationPools["DefaultAppPool"];
  640 + pool.Enable32BitAppOnWin64 = true;
  641 + pool.ManagedRuntimeVersion = "v4.0";
  642 + CommitChanges(serverManager, pool.Name);
  643 + }
  644 + }
  645 +
616 646 #region private method:RegisterWebApplication
617 647 public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode)
618 648 {
... ...
Vrh.Log4Pro.MaintenanceConsole/Program.cs
... ... @@ -21,6 +21,7 @@ using Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS;
21 21 using Vrh.Log4Pro.MaintenanceConsole.FileCleanerManagerNS;
22 22 using Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS;
23 23 using Vrh.Log4Pro.MaintenanceConsole.UserManagerNS;
  24 +using Vrh.Log4Pro.MaintenanceConsole.InstallManagerNS;
24 25  
25 26 using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS;
26 27  
... ... @@ -66,6 +67,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole
66 67 .AddMenuItem(new Menu.Item(CLP.Module.BackupPackageManager.KEY, "Backup Package Manager", BackupPackageManager.Execute, new Menu.ExecutorParameter(args: args)))
67 68 .AddMenuItem(new Menu.Item(CLP.Module.SQLDataBaseManager.KEY, "SQL Database Manager", SQLDataBaseManager.Execute, new Menu.ExecutorParameter(args: args)))
68 69 .AddMenuItem(new Menu.Item(CLP.Module.Log4ProUserManager.KEY, "Log4Pro User Manager", UserManager.Execute, new Menu.ExecutorParameter(args: args)))
  70 + .AddMenuItem(new Menu.Item(CLP.Module.InstallManager.KEY, "Install Manager", InstallManager.Execute, new Menu.ExecutorParameter(args: args)))
69 71 .AddMenuItem(new Menu.ItemSeparator('-'))
70 72 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.KEY, "Maintenance tools", MaintenanceToolManager.Execute, new Menu.ExecutorParameter(args: args)))
71 73 .SetMenuHeaderDisplayer(DisplayComputerInfo)
... ...
Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj
... ... @@ -216,6 +216,7 @@
216 216 <HintPath>..\packages\System.IO.FileSystem.Primitives.4.0.1\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
217 217 </Reference>
218 218 <Reference Include="System.Management" />
  219 + <Reference Include="System.Messaging" />
219 220 <Reference Include="System.Net.Http, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
220 221 <HintPath>..\packages\System.Net.Http.4.1.0\lib\net46\System.Net.Http.dll</HintPath>
221 222 </Reference>
... ... @@ -291,6 +292,8 @@
291 292 <Compile Include="ConsoleFunction - Tools - Membership.cs" />
292 293 <Compile Include="ConsoleFunction - Tools.cs" />
293 294 <Compile Include="Manager - BackupPackageManager.cs" />
  295 + <Compile Include="Manager - InstallManager.cs" />
  296 + <Compile Include="Manager - MSMQManager.cs" />
294 297 <Compile Include="Manager - UserManager.cs" />
295 298 <Compile Include="Manager - SQLDataBaseManager.cs" />
296 299 <Compile Include="Manager - ScheduledTaskManager.cs" />
... ...