Commit 6cd93dfa32d0ad0773a161b29bc1da360cee018d
1 parent
735c2a08
- teszt eljárások hozzáadása
Showing
1 changed file
with
116 additions
and
6 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Program.cs
@@ -30,6 +30,8 @@ using Vrh.XmlProcessing; | @@ -30,6 +30,8 @@ using Vrh.XmlProcessing; | ||
30 | using VRH.Common; | 30 | using VRH.Common; |
31 | using System.Xml.Linq; | 31 | using System.Xml.Linq; |
32 | using System.Reflection; | 32 | using System.Reflection; |
33 | +using System.Messaging; | ||
34 | +using System.IO; | ||
33 | 35 | ||
34 | namespace Vrh.Log4Pro.MaintenanceConsole | 36 | namespace Vrh.Log4Pro.MaintenanceConsole |
35 | { | 37 | { |
@@ -37,7 +39,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole | @@ -37,7 +39,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole | ||
37 | { | 39 | { |
38 | static void Main(string[] args) | 40 | static void Main(string[] args) |
39 | { | 41 | { |
40 | - //TESTS.GetWorkingProcesses(); | 42 | + //TESTS.MSMQTest(); |
41 | //return; | 43 | //return; |
42 | var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE); | 44 | var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE); |
43 | var commandmode = !string.IsNullOrEmpty(forcedmodulekey); | 45 | var commandmode = !string.IsNullOrEmpty(forcedmodulekey); |
@@ -90,28 +92,136 @@ namespace Vrh.Log4Pro.MaintenanceConsole | @@ -90,28 +92,136 @@ namespace Vrh.Log4Pro.MaintenanceConsole | ||
90 | ColorConsole.PressAnykeyToContinue(); | 92 | ColorConsole.PressAnykeyToContinue(); |
91 | } | 93 | } |
92 | } | 94 | } |
93 | - public static class TESTS | 95 | + public static class TESTS |
94 | { | 96 | { |
95 | public static void GetWorkingProcesses() | 97 | public static void GetWorkingProcesses() |
96 | - { | 98 | + { |
97 | using (ServerManager manager = new ServerManager()) | 99 | using (ServerManager manager = new ServerManager()) |
98 | { | 100 | { |
99 | var workerprocesses = manager.ApplicationPools.SelectMany(pool => pool.WorkerProcesses); | 101 | var workerprocesses = manager.ApplicationPools.SelectMany(pool => pool.WorkerProcesses); |
100 | var workerprocessesCount = workerprocesses.Count(); | 102 | var workerprocessesCount = workerprocesses.Count(); |
101 | Console.WriteLine($"Number of worker processes: {workerprocessesCount}"); | 103 | Console.WriteLine($"Number of worker processes: {workerprocessesCount}"); |
102 | foreach (var wp in workerprocesses) | 104 | foreach (var wp in workerprocesses) |
103 | - { | 105 | + { |
104 | Console.WriteLine($"process AppPoolName: {wp.AppPoolName}, process ProcessId: {wp.ProcessId}, process State: {wp.State}, process IsLocallyStored: {wp.IsLocallyStored}"); | 106 | Console.WriteLine($"process AppPoolName: {wp.AppPoolName}, process ProcessId: {wp.ProcessId}, process State: {wp.State}, process IsLocallyStored: {wp.IsLocallyStored}"); |
105 | Console.WriteLine($" ApplicationDomains: {wp.ApplicationDomains.Count()}"); | 107 | Console.WriteLine($" ApplicationDomains: {wp.ApplicationDomains.Count()}"); |
106 | foreach (var ad in wp.ApplicationDomains) | 108 | foreach (var ad in wp.ApplicationDomains) |
107 | - { | 109 | + { |
108 | Console.WriteLine($" VirtualPath: {ad.VirtualPath}, PhysicalPath: {ad.PhysicalPath}"); | 110 | Console.WriteLine($" VirtualPath: {ad.VirtualPath}, PhysicalPath: {ad.PhysicalPath}"); |
109 | } | 111 | } |
110 | - } | 112 | + } |
111 | } | 113 | } |
112 | Console.ReadKey(); | 114 | Console.ReadKey(); |
113 | } | 115 | } |
114 | } | 116 | } |
117 | + public static class MSMQTESTS | ||
118 | + { | ||
119 | + public static void MSMQTest() | ||
120 | + { | ||
121 | + using (var myNewQueue = new MessageQueue(@"SLNOTEBOOKDELL\private$\LJSTOWEBALM")) | ||
122 | + { | ||
123 | + while (true) | ||
124 | + { | ||
125 | + Console.WriteLine("Set formatter (ActiveXMessageFormatter(A),BinaryMessageFormatter(B),XmlMessageFormatter(X)):"); | ||
126 | + var msgformatter = Console.ReadLine(); | ||
127 | + if (string.IsNullOrEmpty(msgformatter)|| msgformatter.ToLower()=="a") msgformatter = "ActiveXMessageFormatter"; | ||
128 | + if (msgformatter.ToLower() == "x") msgformatter = "XmlMessageFormatter"; | ||
129 | + if (msgformatter.ToLower() == "b") msgformatter = "BinaryMessageFormatter"; | ||
130 | + Console.WriteLine("Set encoding (Default(d),UTF8(8),UTF7(7),UTF32(32),Unicode(U),BigEndianUnicode(B),ASCII(A),none:"); | ||
131 | + var msgencoding = Console.ReadLine(); | ||
132 | + if (string.IsNullOrEmpty(msgencoding) || msgencoding.ToLower() == "8") msgencoding = "UTF8"; | ||
133 | + if (msgencoding.ToLower() == "7") msgencoding = "UTF7"; | ||
134 | + if (msgencoding.ToLower() == "32") msgencoding = "UTF32"; | ||
135 | + if (msgencoding.ToLower() == "a") msgencoding = "ASCII"; | ||
136 | + if (msgencoding.ToLower() == "d") msgencoding = "Default"; | ||
137 | + if (msgencoding.ToLower() == "b") msgencoding = "BigEndianUnicode"; | ||
138 | + if (msgencoding.ToLower() == "u") msgencoding = "Unicode"; | ||
139 | + | ||
140 | + Console.WriteLine("Set message to send:"); | ||
141 | + var text = Console.ReadLine(); | ||
142 | + if (string.IsNullOrEmpty(text)) text= "ABCDabcd12345#$@{}[]"; | ||
143 | + MSMQSend(myNewQueue, msgformatter, msgencoding, text); | ||
144 | + Console.WriteLine("Press a key to read back and remove..."); | ||
145 | + Console.ReadKey(); | ||
146 | + var message = MSMQRead(myNewQueue, msgformatter, msgencoding); | ||
147 | + Console.WriteLine($"MessageBody ({msgformatter},{msgencoding}):{message}"); | ||
148 | + Console.WriteLine("------------------------------------------------------------"); | ||
149 | + | ||
150 | + if (Console.ReadLine().ToLower() == "ex") break; | ||
151 | + } | ||
152 | + return; | ||
153 | + } | ||
154 | + } | ||
155 | + private static void MSMQSend(MessageQueue msmq, string msgformatter, string msgencoding, string text) | ||
156 | + { | ||
157 | + Message msg = new System.Messaging.Message(); | ||
158 | + msg.Formatter = SetFormatter(msgformatter); | ||
159 | + if (msg.Formatter is XmlMessageFormatter) { msg.Body = text; } | ||
160 | + else | ||
161 | + { | ||
162 | + var enc = SetEncoding(msgencoding); | ||
163 | + if (enc == null) { msg.Body = text; } | ||
164 | + else { msg.BodyStream = new MemoryStream(enc.GetBytes(text)); } | ||
165 | + } | ||
166 | + msg.Label = msgformatter + "_" + msgencoding; | ||
167 | + msmq.Send(msg); | ||
168 | + Console.WriteLine($"Message: {text}, Label:{msg.Label}"); | ||
169 | + } | ||
170 | + private static string MSMQRead(MessageQueue msmq, string msgformatter, string msgencoding) | ||
171 | + { | ||
172 | + string msgBody = null; | ||
173 | + using (var e = msmq.GetMessageEnumerator2()) | ||
174 | + { | ||
175 | + if (!e.MoveNext(new TimeSpan(0, 0, 10))) return "no more message"; | ||
176 | + System.Messaging.Message msg = e.Current; | ||
177 | + | ||
178 | + StreamReader reader; | ||
179 | + msg.Formatter = SetFormatter(msgformatter); | ||
180 | + if (msg.Formatter is XmlMessageFormatter) | ||
181 | + { | ||
182 | + ((XmlMessageFormatter)msg.Formatter).TargetTypes = new Type[] { typeof(string), }; | ||
183 | + msgBody = (string)msg.Body; | ||
184 | + } | ||
185 | + else | ||
186 | + { | ||
187 | + var enc = SetEncoding(msgencoding); | ||
188 | + if (enc == null) { msgBody = (string)msg.Body; } | ||
189 | + else { reader = new StreamReader(msg.BodyStream, enc); msgBody = reader.ReadToEnd(); } | ||
190 | + } | ||
191 | + e.RemoveCurrent(); | ||
192 | + } | ||
193 | + return msgBody; | ||
194 | + } | ||
195 | + public static IMessageFormatter SetFormatter(string formattername) | ||
196 | + { | ||
197 | + IMessageFormatter mf; | ||
198 | + switch (formattername) | ||
199 | + { | ||
200 | + case "XmlMessageFormatter": mf = new XmlMessageFormatter(); break; | ||
201 | + case "BinaryMessageFormatter": mf = new BinaryMessageFormatter(); break; | ||
202 | + default: | ||
203 | + case "ActiveXMessageFormatter": mf = new ActiveXMessageFormatter(); break; | ||
204 | + } | ||
205 | + return mf; | ||
206 | + } | ||
207 | + public static Encoding SetEncoding(string encodingname) | ||
208 | + { | ||
209 | + Encoding enc; | ||
210 | + switch (encodingname) | ||
211 | + { | ||
212 | + case "none": enc = null; break; | ||
213 | + case "UTF7": enc = Encoding.UTF7; break; | ||
214 | + case "UTF8": enc = Encoding.UTF8; break; | ||
215 | + case "UTF32": enc = Encoding.UTF32; break; | ||
216 | + case "Unicode": enc = Encoding.Unicode; break; | ||
217 | + case "BigEndianUnicode": enc = Encoding.BigEndianUnicode; break; | ||
218 | + case "ASCII": enc = Encoding.ASCII; break; | ||
219 | + default: | ||
220 | + case "Default": enc = Encoding.Default; break; | ||
221 | + } | ||
222 | + return enc; | ||
223 | + } | ||
224 | + } | ||
115 | 225 | ||
116 | #region MaintenanceConsoleXmlProcessor class | 226 | #region MaintenanceConsoleXmlProcessor class |
117 | public class MaintenanceConsoleXmlProcessor : XmlParser | 227 | public class MaintenanceConsoleXmlProcessor : XmlParser |