Commit bfb6894de0a2016ce6cef887114a4734a2b8841a
1 parent
7eaab142
v1.7.0
- WebApplicationMnagaerben virtuális directory-k definiálási lehetősége
Showing
2 changed files
with
72 additions
and
14 deletions
Show diff stats
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")] |