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 331 foreach (var p in sr.SelectedParameterList)
332 332 {
333 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 335 ColorConsole.WriteLine($"{wa.Xml_AppName} is registered in site {wa.Xml_SiteName} using pool {wa.Xml_PoolName}.");
336 336 }
337 337 return o;
... ... @@ -505,6 +505,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
505 505 private static object DisplayWebAppInfo(object obj, int lineix)
506 506 {
507 507 WebApplication wa = (obj as Menu.ExecutorParameter).Parameters as WebApplication;
  508 + var numofvd = wa.Xml_VirtualDirectoryList?.Count()??0;
508 509 if (lineix == 0)
509 510 {
510 511 ColorConsole.WriteLine($"{wa.Xml_Description}", ConsoleColor.Black, ConsoleColor.White);
... ... @@ -552,9 +553,19 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
552 553 ColorConsole.Write($", identity:");
553 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 570 else
560 571 {
... ... @@ -655,7 +666,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
655 666 }
656 667  
657 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 671 using (ServerManager serverManager = new ServerManager())
661 672 {
... ... @@ -668,8 +679,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
668 679 SetItemProperty(serverManager, poolname, "managedRuntimeVersion", "v4.0");
669 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 685 CommitChanges(serverManager, poolname);
675 686 }
... ... @@ -926,13 +937,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
926 937 ApplicationPool pool = serverManager.ApplicationPools[poolname];
927 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 943 Site site = serverManager.Sites[sitename];
932   - Application application = site.Applications[Path.Combine("/",appname)];
  944 + Application application = site.Applications[appname];
933 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 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 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 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 1002 using (ServerManager serverManager = new ServerManager())
985 1003 {
986   - CreateWebApp(serverManager, appname, poolname, sitename, poolphypath);
  1004 + CreateWebApp(serverManager, appname, poolname, sitename, poolphypath,vdlist);
987 1005 CommitChanges(serverManager, poolname);
988 1006 }
989 1007 }
... ... @@ -1065,6 +1083,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1065 1083 public bool Xml_RecreateApp;
1066 1084 public bool Xml_ForceRemovePool;
1067 1085 public bool Xml_ForceRemoveSite;
  1086 + public List<VirtualDirectory> Xml_VirtualDirectoryList;
1068 1087 #endregion properties from Xml definition
1069 1088  
1070 1089 #region properties from environment
... ... @@ -1120,6 +1139,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1120 1139  
1121 1140 Xml_ForceRemovePool = GetValue(nameof(XmlStructure.WebApplication.Attributes.ForceRemovePool), webappXml, false);
1122 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 1157 public WebApplication(WebApplication wadef)
1125 1158 {
... ... @@ -1139,12 +1172,27 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1139 1172 Xml_RecreateApp = wadef.Xml_RecreateApp;
1140 1173 Xml_ForceRemovePool = wadef.Xml_ForceRemovePool;
1141 1174 Xml_ForceRemoveSite = wadef.Xml_ForceRemoveSite;
  1175 + Xml_VirtualDirectoryList = wadef.Xml_VirtualDirectoryList.Select(x => new VirtualDirectory(x)).ToList();
1142 1176  
1143 1177 Xml_ImpersonateIdentityConfigFile = wadef.Xml_ImpersonateIdentityConfigFile;
1144 1178 Xml_ImpersonateIdentity = wadef.Xml_ImpersonateIdentity;
1145 1179 Xml_ImpersonateIdentityUsername = wadef.Xml_ImpersonateIdentityUsername;
1146 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 1196 #region XmlStructure
1149 1197 public static class XmlStructure
1150 1198 {
... ... @@ -1172,10 +1220,20 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS
1172 1220 public static class ForceRemovePool { }
1173 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 1233 #endregion XmlStructure
  1234 + #endregion WebApplicationManager
1178 1235 }
1179 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 32 // You can specify all the values or you can default the Build and Revision Numbers
33 33 // by using the '*' as shown below:
34 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")]
... ...