Commit c4219940de46aba246e2ae6c194d41a8033f3ba3

Authored by Schwirg László
1 parent 009667da

WebApplicationManager / SendUrl megvalósítása command módra

Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - CommandLineParser.cs
@@ -207,6 +207,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS @@ -207,6 +207,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS
207 public static class Function 207 public static class Function
208 { 208 {
209 public const string CMD_WEBAPPS = "-WEBAPPS"; 209 public const string CMD_WEBAPPS = "-WEBAPPS";
  210 + public const string CMD_SENDURL = "-SENDURL";
210 public static class Register { public const string KEY = "WAR"; } 211 public static class Register { public const string KEY = "WAR"; }
211 public static class ConfigureIIS { public const string KEY = "IIS"; } 212 public static class ConfigureIIS { public const string KEY = "IIS"; }
212 public static class Unregister { public const string KEY = "WAU"; } 213 public static class Unregister { public const string KEY = "WAU"; }
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools - Http.cs
@@ -30,29 +30,43 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS @@ -30,29 +30,43 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS
30 public static class HttpTools 30 public static class HttpTools
31 { 31 {
32 public enum RequestType { GET,POST,} 32 public enum RequestType { GET,POST,}
33 - public static ReturnInfoJSON GetReturninfoJSON(string url, RequestType mode = RequestType.GET, List<Vrh.XmlProcessing.UrlElement.UrlParameter> dictparameterlist=null) 33 + public static ReturnInfoJSON GetReturninfoJSON(string url, int timeoutinseconds,RequestType mode = RequestType.GET, List<Vrh.XmlProcessing.UrlElement.UrlParameter> dictparameterlist=null)
34 { 34 {
35 string returninfojsonstring = ""; 35 string returninfojsonstring = "";
  36 + timeoutinseconds = timeoutinseconds <= 0 ? 100: timeoutinseconds;
36 try 37 try
37 { 38 {
38 - return mode == RequestType.GET? _GetReturninfoJSON(url,out returninfojsonstring) : _PostReturninfoJSON(url, out returninfojsonstring, dictparameterlist); 39 + return mode == RequestType.GET? _GetReturninfoJSON(url, timeoutinseconds,out returninfojsonstring) : _PostReturninfoJSON(url, timeoutinseconds, out returninfojsonstring, dictparameterlist);
39 } 40 }
40 catch (Exception ex) { return new ReturnInfoJSON() { ReturnValue = -1, ReturnMessage = ex.Message + "\n" + returninfojsonstring, }; } 41 catch (Exception ex) { return new ReturnInfoJSON() { ReturnValue = -1, ReturnMessage = ex.Message + "\n" + returninfojsonstring, }; }
41 } 42 }
42 43
43 - private static ReturnInfoJSON _GetReturninfoJSON(string url, out string returninfojsonstring) 44 + private static ReturnInfoJSON _GetReturninfoJSON(string url, int timeoutinseconds, out string returninfojsonstring)
44 { 45 {
45 - var returninfojsonstream = Task.Run(async () => await (new HttpClient()).GetStreamAsync(url)).GetAwaiter().GetResult(); 46 + Stream returninfojsonstream;
  47 + using (var httpclient = new HttpClient())
  48 + {
  49 + httpclient.Timeout = new TimeSpan(0, 0, timeoutinseconds);
  50 + returninfojsonstream = Task.Run(async () => await httpclient.GetStreamAsync(url)).GetAwaiter().GetResult();
  51 + }
  52 +
46 returninfojsonstring = GetStreamAsString(returninfojsonstream); 53 returninfojsonstring = GetStreamAsString(returninfojsonstream);
47 ReturnInfoJSON returninfojson = (ReturnInfoJSON)JsonConvert.DeserializeObject(returninfojsonstring,typeof(ReturnInfoJSON)); 54 ReturnInfoJSON returninfojson = (ReturnInfoJSON)JsonConvert.DeserializeObject(returninfojsonstring,typeof(ReturnInfoJSON));
48 //ReturnInfoJSON returninfojson = Task.Run(async () => await JsonSerializer.DeserializeAsync<ReturnInfoJSON>(returninfojsonstream)).GetAwaiter().GetResult(); 55 //ReturnInfoJSON returninfojson = Task.Run(async () => await JsonSerializer.DeserializeAsync<ReturnInfoJSON>(returninfojsonstream)).GetAwaiter().GetResult();
49 return returninfojson; 56 return returninfojson;
50 } 57 }
51 - private static ReturnInfoJSON _PostReturninfoJSON(string url, out string returninfojsonstring, List<Vrh.XmlProcessing.UrlElement.UrlParameter> dictparameterlist = null) 58 + private static ReturnInfoJSON _PostReturninfoJSON(string url, int timeoutinseconds, out string returninfojsonstring, List<Vrh.XmlProcessing.UrlElement.UrlParameter> dictparameterlist = null)
52 { 59 {
53 var jsonstring = JsonConvert.SerializeObject(dictparameterlist.Where(p => p.PassTo == Vrh.XmlProcessing.UrlElement.ParameterTypes.dict)); 60 var jsonstring = JsonConvert.SerializeObject(dictparameterlist.Where(p => p.PassTo == Vrh.XmlProcessing.UrlElement.ParameterTypes.dict));
54 HttpContent requestcontent = new StringContent(jsonstring); 61 HttpContent requestcontent = new StringContent(jsonstring);
55 - var returninfojsonhttpresponsemessage = Task.Run(async () => await (new HttpClient()).PostAsync(url, requestcontent)).GetAwaiter().GetResult(); 62 +
  63 + HttpResponseMessage returninfojsonhttpresponsemessage;
  64 + using (var httpclient = new HttpClient())
  65 + {
  66 + httpclient.Timeout = new TimeSpan(0, 0, timeoutinseconds);
  67 + returninfojsonhttpresponsemessage = Task.Run(async () => await httpclient.PostAsync(url, requestcontent)).GetAwaiter().GetResult();
  68 + }
  69 +
56 var returninfojsonstream = Task.Run(async () => await returninfojsonhttpresponsemessage.Content.ReadAsStreamAsync()).GetAwaiter().GetResult(); 70 var returninfojsonstream = Task.Run(async () => await returninfojsonhttpresponsemessage.Content.ReadAsStreamAsync()).GetAwaiter().GetResult();
57 returninfojsonstring = GetStreamAsString(returninfojsonstream); 71 returninfojsonstring = GetStreamAsString(returninfojsonstream);
58 ReturnInfoJSON returninfojson = (ReturnInfoJSON)JsonConvert.DeserializeObject(returninfojsonstring, typeof(ReturnInfoJSON)); 72 ReturnInfoJSON returninfojson = (ReturnInfoJSON)JsonConvert.DeserializeObject(returninfojsonstring, typeof(ReturnInfoJSON));
Vrh.Log4Pro.MaintenanceConsole/ConsoleFunction - Tools.cs
@@ -53,12 +53,12 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS @@ -53,12 +53,12 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ToolsNS
53 } 53 }
54 } 54 }
55 55
56 - public static void StartAsSystem(bool silent) 56 + public static void StartAsSystem(bool interactivemode=false)
57 { 57 {
58 - if (!silent) 58 + if (interactivemode)
59 { 59 {
60 var ans = ColorConsole.ReadLine("NT AUTHORITY\\SYSTEM", prefix: "Start as ",f:ConsoleColor.Yellow, suffix: "?", bracket: "[]",validitylist:new List<string> { "yes","no"},exitvalue:"EX",defaultvalue:"no"); 60 var ans = ColorConsole.ReadLine("NT AUTHORITY\\SYSTEM", prefix: "Start as ",f:ConsoleColor.Yellow, suffix: "?", bracket: "[]",validitylist:new List<string> { "yes","no"},exitvalue:"EX",defaultvalue:"no");
61 - if (ans.ToLower() != "yes") { return; } 61 + if (ans?.ToLower() != "yes") { return; }
62 } 62 }
63 string runasusername = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 63 string runasusername = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
64 if (runasusername=="NT AUTHORITY\\SYSTEM") { return; } 64 if (runasusername=="NT AUTHORITY\\SYSTEM") { return; }
Vrh.Log4Pro.MaintenanceConsole/Manager - MaintenanceToolManager.cs
@@ -43,6 +43,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS @@ -43,6 +43,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
43 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.RegexTester.KEY, "Regex tester", RegexTester,new Menu.ExecutorParameter(cfg:config))) 43 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.RegexTester.KEY, "Regex tester", RegexTester,new Menu.ExecutorParameter(cfg:config)))
44 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.TCPIPTester.KEY, "TcpIp Tester", TcpIpTester, new Menu.ExecutorParameter(cfg: config, null))) 44 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.TCPIPTester.KEY, "TcpIp Tester", TcpIpTester, new Menu.ExecutorParameter(cfg: config, null)))
45 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool.KEY, "Tool sample", Tool2, new Menu.ExecutorParameter(cfg: config, null))) 45 .AddMenuItem(new Menu.Item(CLP.Module.MaintenanceToolManager.Functions.Tool.KEY, "Tool sample", Tool2, new Menu.ExecutorParameter(cfg: config, null)))
  46 +
46 .SetSelectionMode(Menu.SelectionMode.Single); 47 .SetSelectionMode(Menu.SelectionMode.Single);
47 foreach (var x in config.ExternalUtilityConfigList) 48 foreach (var x in config.ExternalUtilityConfigList)
48 { 49 {
@@ -74,7 +75,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS @@ -74,7 +75,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MaintenanceToolManagerNS
74 #region RegexTester 75 #region RegexTester
75 public static object StartAsSystem(object parameter, object o) 76 public static object StartAsSystem(object parameter, object o)
76 { 77 {
77 - OtherTools.StartAsSystem(true); 78 + OtherTools.StartAsSystem();
78 return o; 79 return o;
79 } 80 }
80 private static object RegexTester(object parameter, object o) 81 private static object RegexTester(object parameter, object o)
Vrh.Log4Pro.MaintenanceConsole/Manager - ScheduledTaskManager.cs
@@ -283,7 +283,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS @@ -283,7 +283,6 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS
283 if (st.Status != "Uninstalled" && st.Status != "Disabled") 283 if (st.Status != "Uninstalled" && st.Status != "Disabled")
284 { 284 {
285 ColorConsole.Write(st.PriorityText(st.Priority), statuscolor, prefix: "Effective priority ", suffix: ". "); 285 ColorConsole.Write(st.PriorityText(st.Priority), statuscolor, prefix: "Effective priority ", suffix: ". ");
286 - ColorConsole.Write($"{st.Xml_Commandname}", ConsoleColor.Yellow, prefix: "Command: ");  
287 } 286 }
288 ColorConsole.WriteLine(); 287 ColorConsole.WriteLine();
289 return " "; 288 return " ";
@@ -293,11 +292,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS @@ -293,11 +292,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.ScheduledTaskManagerNS
293 ColorConsole.Write($"{st.Xml_Schedule}",ConsoleColor.Yellow,prefix:"Scheduled ",suffix:" "); 292 ColorConsole.Write($"{st.Xml_Schedule}",ConsoleColor.Yellow,prefix:"Scheduled ",suffix:" ");
294 ColorConsole.Write($"{st.Xml_StartTime}", ConsoleColor.Yellow, prefix: "at ", suffix: ", "); 293 ColorConsole.Write($"{st.Xml_StartTime}", ConsoleColor.Yellow, prefix: "at ", suffix: ", ");
295 ColorConsole.Write(st.PriorityText(st.Xml_Priority), ConsoleColor.Yellow, prefix: "with priority ", suffix: ". "); 294 ColorConsole.Write(st.PriorityText(st.Xml_Priority), ConsoleColor.Yellow, prefix: "with priority ", suffix: ". ");
296 - ColorConsole.Write($"{st.Xml_Enable}", ConsoleColor.Yellow, prefix: "After install ", suffix: " ");  
297 - ColorConsole.Write($"{st.Xml_Run}", ConsoleColor.Yellow, prefix: "and run ", suffix: ". "); 295 + ColorConsole.Write($"{st.Xml_Enable}", ConsoleColor.Yellow, prefix: "After install: Enable=", suffix: ",");
  296 + ColorConsole.Write($"{st.Xml_Run}", ConsoleColor.Yellow, prefix: "Run=", suffix: ". ");
298 ColorConsole.WriteLine(" "); 297 ColorConsole.WriteLine(" ");
299 return " "; 298 return " ";
300 } 299 }
  300 + else if (lineix == 2)
  301 + {
  302 + ColorConsole.WriteLine($"{st.Xml_Commandname}", ConsoleColor.Yellow, prefix: "Command: ");
  303 + return " ";
  304 + }
301 return null; 305 return null;
302 } 306 }
303 #endregion private method: DisplayTaskInfo 307 #endregion private method: DisplayTaskInfo
Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs
@@ -88,6 +88,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -88,6 +88,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
88 var config = (parameters as Menu.ExecutorParameter).GetConfig<WebApplicationManagerXmlProcessor>(); 88 var config = (parameters as Menu.ExecutorParameter).GetConfig<WebApplicationManagerXmlProcessor>();
89 var args = (parameters as Menu.ExecutorParameter).Args; 89 var args = (parameters as Menu.ExecutorParameter).Args;
90 var selectedwaindexes = CommandLine.GetCommandLineArgument(args, CLP.Module.WebApplicationManager.Function.CMD_WEBAPPS); 90 var selectedwaindexes = CommandLine.GetCommandLineArgument(args, CLP.Module.WebApplicationManager.Function.CMD_WEBAPPS);
  91 + var predefinedsendurlname = CommandLine.GetCommandLineArgument(args, CLP.Module.WebApplicationManager.Function.CMD_SENDURL);
91 var menuwapps = DisplayWebApplicationMenu(config, "Select the web application(s) to manage!", silent: true); 92 var menuwapps = DisplayWebApplicationMenu(config, "Select the web application(s) to manage!", silent: true);
92 menuwapps.SetSelectionMode(Menu.SelectionMode.Single); 93 menuwapps.SetSelectionMode(Menu.SelectionMode.Single);
93 Menu.Selection sr = menuwapps.Select(selectedwaindexes); 94 Menu.Selection sr = menuwapps.Select(selectedwaindexes);
@@ -104,7 +105,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -104,7 +105,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
104 var therearepredefinedurls = selectedwebapplication.Xml_SendUrlList != null && selectedwebapplication.Xml_SendUrlList.Any(); 105 var therearepredefinedurls = selectedwebapplication.Xml_SendUrlList != null && selectedwebapplication.Xml_SendUrlList.Any();
105 string urlname; 106 string urlname;
106 List<string> sendurlnamelist=null; 107 List<string> sendurlnamelist=null;
107 - if (therearepredefinedurls) 108 + if (therearepredefinedurls && !string.IsNullOrWhiteSpace(predefinedsendurlname)) { urlname = predefinedsendurlname; }
  109 + else if (therearepredefinedurls)
108 { 110 {
109 ColorConsole.WriteLine("Enter the name of the url to send, or * to enter url manually:", ConsoleColor.Yellow); 111 ColorConsole.WriteLine("Enter the name of the url to send, or * to enter url manually:", ConsoleColor.Yellow);
110 sendurlnamelist = selectedwebapplication.Xml_SendUrlList.Select(su => su.Name).ToList(); 112 sendurlnamelist = selectedwebapplication.Xml_SendUrlList.Select(su => su.Name).ToList();
@@ -122,6 +124,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -122,6 +124,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
122 124
123 string urltext; 125 string urltext;
124 HttpTools.RequestType gp; 126 HttpTools.RequestType gp;
  127 + int to;
125 List<Vrh.XmlProcessing.UrlElement.UrlParameter> uplist=null; 128 List<Vrh.XmlProcessing.UrlElement.UrlParameter> uplist=null;
126 if (urlname.ToLower() == "*") 129 if (urlname.ToLower() == "*")
127 { 130 {
@@ -134,12 +137,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -134,12 +137,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
134 if (string.IsNullOrWhiteSpace(urltext)) goto getsendurlnameurlinputcycle; 137 if (string.IsNullOrWhiteSpace(urltext)) goto getsendurlnameurlinputcycle;
135 ColorConsole.WriteLine("Enter request type (GET/POST):", ConsoleColor.Yellow); 138 ColorConsole.WriteLine("Enter request type (GET/POST):", ConsoleColor.Yellow);
136 string gpstr = ColorConsole.ReadLine(); 139 string gpstr = ColorConsole.ReadLine();
137 - gp = HttpTools.RequestType.GET;  
138 if (gpstr.ToLower() == "ex") return o; 140 if (gpstr.ToLower() == "ex") return o;
  141 + gp = HttpTools.RequestType.GET;
139 if (string.IsNullOrWhiteSpace(gpstr)) goto getsendurlnameurlinputcycle; 142 if (string.IsNullOrWhiteSpace(gpstr)) goto getsendurlnameurlinputcycle;
140 else if (gpstr.ToUpper() == nameof(HttpTools.RequestType.GET)) { gp = HttpTools.RequestType.GET; } 143 else if (gpstr.ToUpper() == nameof(HttpTools.RequestType.GET)) { gp = HttpTools.RequestType.GET; }
141 else if (gpstr.ToUpper() == nameof(HttpTools.RequestType.POST)) { gp = HttpTools.RequestType.POST; } 144 else if (gpstr.ToUpper() == nameof(HttpTools.RequestType.POST)) { gp = HttpTools.RequestType.POST; }
142 145
  146 + ColorConsole.WriteLine("Enter timeout (0 for default):", ConsoleColor.Yellow);
  147 + string tostring = ColorConsole.ReadLine();
  148 + if (tostring.ToLower() == "ex") return o;
  149 + to = 0;
  150 + if (string.IsNullOrWhiteSpace(tostring)) goto getsendurlnameurlinputcycle;
  151 + else if (!int.TryParse(tostring,out to)) { }
143 } 152 }
144 else if (sendurlnamelist!=null && !sendurlnamelist.Contains(urlname)) { ColorConsole.WriteLine("Invalid selection!", ConsoleColor.Red); return o; } 153 else if (sendurlnamelist!=null && !sendurlnamelist.Contains(urlname)) { ColorConsole.WriteLine("Invalid selection!", ConsoleColor.Red); return o; }
145 else 154 else
@@ -149,12 +158,17 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -149,12 +158,17 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
149 urltext = urlobject.GetUrl(); 158 urltext = urlobject.GetUrl();
150 uplist = urlobject.UrlParameters.Where(p => p.PassTo == Vrh.XmlProcessing.UrlElement.ParameterTypes.dict).ToList(); 159 uplist = urlobject.UrlParameters.Where(p => p.PassTo == Vrh.XmlProcessing.UrlElement.ParameterTypes.dict).ToList();
151 gp = sendurlobject.ForcePOST || uplist.Any() ? HttpTools.RequestType.POST : HttpTools.RequestType.GET; 160 gp = sendurlobject.ForcePOST || uplist.Any() ? HttpTools.RequestType.POST : HttpTools.RequestType.GET;
  161 + to = sendurlobject.TimeoutInSeconds;
152 } 162 }
153 163
154 - ToolsNS.HttpTools.ReturnInfoJSON returninfojson = HttpTools.GetReturninfoJSON(urltext, gp); 164 + repeatsameurl:
  165 + ToolsNS.HttpTools.ReturnInfoJSON returninfojson = HttpTools.GetReturninfoJSON(urltext, to,gp);
155 ColorConsole.WriteLine("ReturnValue:", ConsoleColor.Yellow, suffix: returninfojson.ReturnValue.ToString()); 166 ColorConsole.WriteLine("ReturnValue:", ConsoleColor.Yellow, suffix: returninfojson.ReturnValue.ToString());
156 ColorConsole.WriteLine("ReturnMessage:", ConsoleColor.Yellow, suffix: returninfojson.ReturnMessage); 167 ColorConsole.WriteLine("ReturnMessage:", ConsoleColor.Yellow, suffix: returninfojson.ReturnMessage);
157 ColorConsole.WriteLine(); 168 ColorConsole.WriteLine();
  169 + ColorConsole.WriteLine("Repeat the same url?", ConsoleColor.Gray, suffix: "Yes/No/y/n");
  170 + var repeat = ColorConsole.ReadLine().ToLower();
  171 + if (repeat == "yes" || repeat == "y") goto repeatsameurl;
158 172
159 return o; 173 return o;
160 } 174 }
@@ -1287,6 +1301,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -1287,6 +1301,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1287 public Vrh.XmlProcessing.UrlElement UrlElement; 1301 public Vrh.XmlProcessing.UrlElement UrlElement;
1288 public bool ForcePOST = false; 1302 public bool ForcePOST = false;
1289 public string Name; 1303 public string Name;
  1304 + public int TimeoutInSeconds = 0;
1290 public bool IsOK 1305 public bool IsOK
1291 { 1306 {
1292 get 1307 get
@@ -1314,7 +1329,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -1314,7 +1329,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1314 public SendUrl(XElement sendurlxmlelement) 1329 public SendUrl(XElement sendurlxmlelement)
1315 { 1330 {
1316 Name = GetValue(nameof(XmlStructure.WebApplication.SendUrl.Attributes.Name), sendurlxmlelement, ""); 1331 Name = GetValue(nameof(XmlStructure.WebApplication.SendUrl.Attributes.Name), sendurlxmlelement, "");
1317 - ForcePOST = GetValue(nameof(XmlStructure.WebApplication.SendUrl.Attributes.ForcePost), sendurlxmlelement, XmlStructure.WebApplication.SendUrl.Attributes.ForcePost.Values.DEFAULT); 1332 + ForcePOST = GetValue(nameof(XmlStructure.WebApplication.SendUrl.Attributes.forcepost), sendurlxmlelement, XmlStructure.WebApplication.SendUrl.Attributes.forcepost.Values.DEFAULT);
  1333 + TimeoutInSeconds = GetValue(nameof(XmlStructure.WebApplication.SendUrl.Attributes.timeoutinseconds), sendurlxmlelement, XmlStructure.WebApplication.SendUrl.Attributes.timeoutinseconds.Values.DEFAULT);
1318 Vrh.XmlProcessing.UrlElement xxxx = new Vrh.XmlProcessing.UrlElement(sendurlxmlelement); 1334 Vrh.XmlProcessing.UrlElement xxxx = new Vrh.XmlProcessing.UrlElement(sendurlxmlelement);
1319 UrlElement = new Vrh.XmlProcessing.UrlElement(); 1335 UrlElement = new Vrh.XmlProcessing.UrlElement();
1320 UrlElement.Url = GetValue(sendurlxmlelement, ""); 1336 UrlElement.Url = GetValue(sendurlxmlelement, "");
@@ -1382,7 +1398,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -1382,7 +1398,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1382 public static class Attributes 1398 public static class Attributes
1383 { 1399 {
1384 public static class Name { } 1400 public static class Name { }
1385 - public static class ForcePost { public static class Values { public static bool DEFAULT = false; } } 1401 + public static class forcepost { public static class Values { public static bool DEFAULT = false; } }
  1402 + public static class timeoutinseconds { public static class Values { public static int DEFAULT = 0; } }
1386 public static class protocol { } 1403 public static class protocol { }
1387 public static class hostname { } 1404 public static class hostname { }
1388 public static class appname { } 1405 public static class appname { }
Vrh.Log4Pro.MaintenanceConsole/Program.cs
@@ -37,19 +37,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole @@ -37,19 +37,18 @@ namespace Vrh.Log4Pro.MaintenanceConsole
37 { 37 {
38 static void Main(string[] args) 38 static void Main(string[] args)
39 { 39 {
40 - //Tests.T3();  
41 - //return;  
42 -  
43 - var startassystemstr = CommandLine.GetCommandLineArgument(args, CLP.CMD_STARTASSYSTEM);  
44 - var startassystem = startassystemstr!=null && startassystemstr.ToLower() == "yes";  
45 -  
46 - OtherTools.StartAsAdmin();  
47 - OtherTools.StartAsSystem(silent:startassystem);  
48 -  
49 var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE); 40 var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE);
50 var commandmode = !string.IsNullOrEmpty(forcedmodulekey); 41 var commandmode = !string.IsNullOrEmpty(forcedmodulekey);
51 var silentmode = commandmode && !string.IsNullOrEmpty(CommandLine.GetCommandLineArgument(args, CLP.CMD_SILENT, switchtype: true)); 42 var silentmode = commandmode && !string.IsNullOrEmpty(CommandLine.GetCommandLineArgument(args, CLP.CMD_SILENT, switchtype: true));
52 ColorConsole.SilentMode=silentmode; 43 ColorConsole.SilentMode=silentmode;
  44 +
  45 + if (ColorConsole.SilentMode) { Thread.Sleep(20000); } // ez azért van, hogy ha a schedulerben elindítjuk az ütemmezett taskot, akkor rá tudjunk kapcsolódni a debuggerrel
  46 +
  47 + var startassystemstr = CommandLine.GetCommandLineArgument(args, CLP.CMD_STARTASSYSTEM);
  48 + var startassystem = startassystemstr != null && startassystemstr.ToLower() == "yes";
  49 + OtherTools.StartAsAdmin();
  50 + OtherTools.StartAsSystem(!startassystem);
  51 +
53 Menu.SetCommandMode(commandmode); 52 Menu.SetCommandMode(commandmode);
54 53
55 var appconfigpath = CommandLine.GetCommandLineArgument(args, CLP.CMD_APPCONFIG); 54 var appconfigpath = CommandLine.GetCommandLineArgument(args, CLP.CMD_APPCONFIG);
Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices; @@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
32 // You can specify all the values or you can default the Build and Revision Numbers 32 // You can specify all the values or you can default the Build and Revision Numbers
33 // by using the '*' as shown below: 33 // by using the '*' as shown below:
34 // [assembly: AssemblyVersion("1.0.*")] 34 // [assembly: AssemblyVersion("1.0.*")]
35 -[assembly: AssemblyVersion("1.16.1.0")]  
36 -[assembly: AssemblyFileVersion("1.16.1.0")] 35 +[assembly: AssemblyVersion("1.16.3.0")]
  36 +[assembly: AssemblyFileVersion("1.16.3.0")]