Commit bfb6894de0a2016ce6cef887114a4734a2b8841a

Authored by Schwirg László
1 parent 7eaab142

v1.7.0

- WebApplicationMnagaerben virtuális directory-k definiálási lehetősége
Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs
@@ -331,7 +331,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -331,7 +331,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
331 foreach (var p in sr.SelectedParameterList) 331 foreach (var p in sr.SelectedParameterList)
332 { 332 {
333 WebApplication wa=p.Parameters as WebApplication; 333 WebApplication wa=p.Parameters as WebApplication;
334 - WebApplicationManagerCore.RegisterWebApplication(wa.Xml_SiteName, wa.Xml_PoolName, wa.Xml_AppName, wa.Xml_AppPhysicalPath, wa.Xml_SitePhysicalPath, 8080, wa.Xml_RecreatePool, wa.Xml_RecreateSite, wa.Xml_RecreateApp, wa.Xml_PoolPipeLineMode); 334 + WebApplicationManagerCore.RegisterWebApplication(wa.Xml_SiteName, wa.Xml_PoolName, wa.Xml_AppName, wa.Xml_AppPhysicalPath, wa.Xml_SitePhysicalPath, 8080, wa.Xml_RecreatePool, wa.Xml_RecreateSite, wa.Xml_RecreateApp, wa.Xml_PoolPipeLineMode,wa.Xml_VirtualDirectoryList);
335 ColorConsole.WriteLine($"{wa.Xml_AppName} is registered in site {wa.Xml_SiteName} using pool {wa.Xml_PoolName}."); 335 ColorConsole.WriteLine($"{wa.Xml_AppName} is registered in site {wa.Xml_SiteName} using pool {wa.Xml_PoolName}.");
336 } 336 }
337 return o; 337 return o;
@@ -505,6 +505,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -505,6 +505,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
505 private static object DisplayWebAppInfo(object obj, int lineix) 505 private static object DisplayWebAppInfo(object obj, int lineix)
506 { 506 {
507 WebApplication wa = (obj as Menu.ExecutorParameter).Parameters as WebApplication; 507 WebApplication wa = (obj as Menu.ExecutorParameter).Parameters as WebApplication;
  508 + var numofvd = wa.Xml_VirtualDirectoryList?.Count()??0;
508 if (lineix == 0) 509 if (lineix == 0)
509 { 510 {
510 ColorConsole.WriteLine($"{wa.Xml_Description}", ConsoleColor.Black, ConsoleColor.White); 511 ColorConsole.WriteLine($"{wa.Xml_Description}", ConsoleColor.Black, ConsoleColor.White);
@@ -552,9 +553,19 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -552,9 +553,19 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
552 ColorConsole.Write($", identity:"); 553 ColorConsole.Write($", identity:");
553 ColorConsole.WriteLine($"{wa.PoolAccount}", ConsoleColor.White); 554 ColorConsole.WriteLine($"{wa.PoolAccount}", ConsoleColor.White);
554 } 555 }
555 - else if (lineix == 5) 556 + else if (5 <= lineix && lineix <= 5+numofvd)
556 { 557 {
557 - ColorConsole.WriteLine(); 558 + var elementindex = lineix - 5;
  559 + if (numofvd==0 || elementindex > numofvd - 1) { ColorConsole.WriteLine(); }
  560 + else
  561 + {
  562 + var currentelement = wa.Xml_VirtualDirectoryList.ElementAt(elementindex);
  563 + ColorConsole.Write($"Virtual directory:");
  564 + ColorConsole.Write($"{currentelement.VirtualPath}", ConsoleColor.Cyan);
  565 + ColorConsole.Write($", (");
  566 + ColorConsole.Write($"{currentelement.PhysicalPath}", ConsoleColor.Cyan);
  567 + ColorConsole.WriteLine($")");
  568 + }
558 } 569 }
559 else 570 else
560 { 571 {
@@ -655,7 +666,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -655,7 +666,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
655 } 666 }
656 667
657 #region private method:RegisterWebApplication 668 #region private method:RegisterWebApplication
658 - public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode) 669 + public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode,List<WebApplication.VirtualDirectory> vdlist)
659 { 670 {
660 using (ServerManager serverManager = new ServerManager()) 671 using (ServerManager serverManager = new ServerManager())
661 { 672 {
@@ -668,8 +679,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -668,8 +679,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
668 SetItemProperty(serverManager, poolname, "managedRuntimeVersion", "v4.0"); 679 SetItemProperty(serverManager, poolname, "managedRuntimeVersion", "v4.0");
669 SetItemProperty(serverManager, poolname, "enable32BitAppOnWin64", "true"); 680 SetItemProperty(serverManager, poolname, "enable32BitAppOnWin64", "true");
670 681
671 - if (!isExistWebApp(serverManager, sitename, appname)) { CreateWebApp(serverManager, appname, poolname, sitename, poolphypath); }  
672 - else if (recreateapp) { RemoveWebApp(serverManager, appname, sitename); CreateWebApp(serverManager, appname, poolname, sitename, poolphypath); } 682 + if (!isExistWebApp(serverManager, sitename, appname)) { CreateWebApp(serverManager, appname, poolname, sitename, poolphypath, vdlist); }
  683 + else if (recreateapp) { RemoveWebApp(serverManager, appname, sitename); CreateWebApp(serverManager, appname, poolname, sitename, poolphypath, vdlist); }
673 684
674 CommitChanges(serverManager, poolname); 685 CommitChanges(serverManager, poolname);
675 } 686 }
@@ -926,13 +937,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -926,13 +937,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
926 ApplicationPool pool = serverManager.ApplicationPools[poolname]; 937 ApplicationPool pool = serverManager.ApplicationPools[poolname];
927 pool.ManagedPipelineMode = plmode; 938 pool.ManagedPipelineMode = plmode;
928 } 939 }
929 - private static void CreateWebApp(ServerManager serverManager, string appname, string poolname, string sitename, string poolphypath) 940 + private static void CreateWebApp(ServerManager serverManager, string appname, string poolname, string sitename, string poolphypath,List<WebApplication.VirtualDirectory> vdlist)
930 { 941 {
  942 + appname = Path.Combine("/", appname);
931 Site site = serverManager.Sites[sitename]; 943 Site site = serverManager.Sites[sitename];
932 - Application application = site.Applications[Path.Combine("/",appname)]; 944 + Application application = site.Applications[appname];
933 if (application != null) { site.Applications.Remove(application); } 945 if (application != null) { site.Applications.Remove(application); }
934 - application = site.Applications.Add(Path.Combine("/",appname), poolphypath); 946 + application = site.Applications.Add(appname, poolphypath);
935 application.ApplicationPoolName = poolname; 947 application.ApplicationPoolName = poolname;
  948 +
  949 + foreach (var vd in vdlist)
  950 + {
  951 + application.VirtualDirectories.Add(vd.VirtualPath, vd.PhysicalPath);
  952 + }
  953 + serverManager.CommitChanges();
936 } 954 }
937 private static void CreateWebSite(ServerManager serverManager, string sitename, string poolname, string hostheader, string sitephypath, int siteport = 8000) 955 private static void CreateWebSite(ServerManager serverManager, string sitename, string poolname, string hostheader, string sitephypath, int siteport = 8000)
938 { 956 {
@@ -979,11 +997,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -979,11 +997,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
979 CommitChanges(serverManager, poolname); 997 CommitChanges(serverManager, poolname);
980 } 998 }
981 } 999 }
982 - private static void CreateWebApp(string appname, string poolname, string sitename, string poolphypath) 1000 + private static void CreateWebApp(string appname, string poolname, string sitename, string poolphypath, List<WebApplication.VirtualDirectory> vdlist)
983 { 1001 {
984 using (ServerManager serverManager = new ServerManager()) 1002 using (ServerManager serverManager = new ServerManager())
985 { 1003 {
986 - CreateWebApp(serverManager, appname, poolname, sitename, poolphypath); 1004 + CreateWebApp(serverManager, appname, poolname, sitename, poolphypath,vdlist);
987 CommitChanges(serverManager, poolname); 1005 CommitChanges(serverManager, poolname);
988 } 1006 }
989 } 1007 }
@@ -1065,6 +1083,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -1065,6 +1083,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1065 public bool Xml_RecreateApp; 1083 public bool Xml_RecreateApp;
1066 public bool Xml_ForceRemovePool; 1084 public bool Xml_ForceRemovePool;
1067 public bool Xml_ForceRemoveSite; 1085 public bool Xml_ForceRemoveSite;
  1086 + public List<VirtualDirectory> Xml_VirtualDirectoryList;
1068 #endregion properties from Xml definition 1087 #endregion properties from Xml definition
1069 1088
1070 #region properties from environment 1089 #region properties from environment
@@ -1120,6 +1139,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -1120,6 +1139,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1120 1139
1121 Xml_ForceRemovePool = GetValue(nameof(XmlStructure.WebApplication.Attributes.ForceRemovePool), webappXml, false); 1140 Xml_ForceRemovePool = GetValue(nameof(XmlStructure.WebApplication.Attributes.ForceRemovePool), webappXml, false);
1122 Xml_ForceRemoveSite = GetValue(nameof(XmlStructure.WebApplication.Attributes.ForceRemoveSite), webappXml, false); 1141 Xml_ForceRemoveSite = GetValue(nameof(XmlStructure.WebApplication.Attributes.ForceRemoveSite), webappXml, false);
  1142 +
  1143 + Xml_VirtualDirectoryList = new List<VirtualDirectory>();
  1144 + try
  1145 + {
  1146 + var vddefinitionXmlList = GetAllXElements(webappXml, nameof(XmlStructure.WebApplication.VirtualDirectory));
  1147 + if (vddefinitionXmlList != null && vddefinitionXmlList.Any())
  1148 + {
  1149 + foreach (var vddefinitionXml in vddefinitionXmlList)
  1150 + {
  1151 + Xml_VirtualDirectoryList.Add(new VirtualDirectory(vddefinitionXml));
  1152 + }
  1153 + }
  1154 + }
  1155 + catch { }
1123 } 1156 }
1124 public WebApplication(WebApplication wadef) 1157 public WebApplication(WebApplication wadef)
1125 { 1158 {
@@ -1139,12 +1172,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -1139,12 +1172,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1139 Xml_RecreateApp = wadef.Xml_RecreateApp; 1172 Xml_RecreateApp = wadef.Xml_RecreateApp;
1140 Xml_ForceRemovePool = wadef.Xml_ForceRemovePool; 1173 Xml_ForceRemovePool = wadef.Xml_ForceRemovePool;
1141 Xml_ForceRemoveSite = wadef.Xml_ForceRemoveSite; 1174 Xml_ForceRemoveSite = wadef.Xml_ForceRemoveSite;
  1175 + Xml_VirtualDirectoryList = wadef.Xml_VirtualDirectoryList.Select(x => new VirtualDirectory(x)).ToList();
1142 1176
1143 Xml_ImpersonateIdentityConfigFile = wadef.Xml_ImpersonateIdentityConfigFile; 1177 Xml_ImpersonateIdentityConfigFile = wadef.Xml_ImpersonateIdentityConfigFile;
1144 Xml_ImpersonateIdentity = wadef.Xml_ImpersonateIdentity; 1178 Xml_ImpersonateIdentity = wadef.Xml_ImpersonateIdentity;
1145 Xml_ImpersonateIdentityUsername = wadef.Xml_ImpersonateIdentityUsername; 1179 Xml_ImpersonateIdentityUsername = wadef.Xml_ImpersonateIdentityUsername;
1146 Xml_ImpersonateIdentityPassword = wadef.Xml_ImpersonateIdentityPassword; 1180 Xml_ImpersonateIdentityPassword = wadef.Xml_ImpersonateIdentityPassword;
1147 } 1181 }
  1182 +
  1183 + public class VirtualDirectory : XmlLinqBase
  1184 + {
  1185 + public string VirtualPath;
  1186 + public string PhysicalPath;
  1187 + public VirtualDirectory(string vpath, string ppath) { VirtualPath = vpath; PhysicalPath = ppath; }
  1188 + public VirtualDirectory(VirtualDirectory vd) { VirtualPath = vd.VirtualPath; PhysicalPath = vd.PhysicalPath; }
  1189 + public VirtualDirectory(XElement vdxml)
  1190 + {
  1191 + VirtualPath = GetValue(nameof(XmlStructure.WebApplication.VirtualDirectory.Attributes.VirtualPath), vdxml, "");
  1192 + PhysicalPath = GetValue(nameof(XmlStructure.WebApplication.VirtualDirectory.Attributes.PhysicalPath), vdxml, "");
  1193 + }
  1194 + }
  1195 +
1148 #region XmlStructure 1196 #region XmlStructure
1149 public static class XmlStructure 1197 public static class XmlStructure
1150 { 1198 {
@@ -1172,10 +1220,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS @@ -1172,10 +1220,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1172 public static class ForceRemovePool { } 1220 public static class ForceRemovePool { }
1173 public static class ForceRemoveSite { } 1221 public static class ForceRemoveSite { }
1174 } 1222 }
  1223 + public static class VirtualDirectory
  1224 + {
  1225 + public static class Attributes
  1226 + {
  1227 + public static class VirtualPath {}
  1228 + public static class PhysicalPath {}
  1229 + }
  1230 + }
1175 } 1231 }
1176 } 1232 }
1177 #endregion XmlStructure 1233 #endregion XmlStructure
  1234 + #endregion WebApplicationManager
1178 } 1235 }
1179 #endregion WebApplication class 1236 #endregion WebApplication class
1180 - #endregion WebApplicationManager 1237 + #region VirtualDirectory class
  1238 + #endregion VirtualDirectory class
1181 } 1239 }
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.6.3.0")]  
36 -[assembly: AssemblyFileVersion("1.6.3.0")] 35 +[assembly: AssemblyVersion("1.7.0.0")]
  36 +[assembly: AssemblyFileVersion("1.7.0.0")]