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 | 30 | using VRH.Common; |
31 | 31 | using System.Xml.Linq; |
32 | 32 | using System.Reflection; |
33 | +using System.Messaging; | |
34 | +using System.IO; | |
33 | 35 | |
34 | 36 | namespace Vrh.Log4Pro.MaintenanceConsole |
35 | 37 | { |
... | ... | @@ -37,7 +39,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole |
37 | 39 | { |
38 | 40 | static void Main(string[] args) |
39 | 41 | { |
40 | - //TESTS.GetWorkingProcesses(); | |
42 | + //TESTS.MSMQTest(); | |
41 | 43 | //return; |
42 | 44 | var forcedmodulekey = CommandLine.GetCommandLineArgument(args, CLP.CMD_MODULE); |
43 | 45 | var commandmode = !string.IsNullOrEmpty(forcedmodulekey); |
... | ... | @@ -90,28 +92,136 @@ namespace Vrh.Log4Pro.MaintenanceConsole |
90 | 92 | ColorConsole.PressAnykeyToContinue(); |
91 | 93 | } |
92 | 94 | } |
93 | - public static class TESTS | |
95 | + public static class TESTS | |
94 | 96 | { |
95 | 97 | public static void GetWorkingProcesses() |
96 | - { | |
98 | + { | |
97 | 99 | using (ServerManager manager = new ServerManager()) |
98 | 100 | { |
99 | 101 | var workerprocesses = manager.ApplicationPools.SelectMany(pool => pool.WorkerProcesses); |
100 | 102 | var workerprocessesCount = workerprocesses.Count(); |
101 | 103 | Console.WriteLine($"Number of worker processes: {workerprocessesCount}"); |
102 | 104 | foreach (var wp in workerprocesses) |
103 | - { | |
105 | + { | |
104 | 106 | Console.WriteLine($"process AppPoolName: {wp.AppPoolName}, process ProcessId: {wp.ProcessId}, process State: {wp.State}, process IsLocallyStored: {wp.IsLocallyStored}"); |
105 | 107 | Console.WriteLine($" ApplicationDomains: {wp.ApplicationDomains.Count()}"); |
106 | 108 | foreach (var ad in wp.ApplicationDomains) |
107 | - { | |
109 | + { | |
108 | 110 | Console.WriteLine($" VirtualPath: {ad.VirtualPath}, PhysicalPath: {ad.PhysicalPath}"); |
109 | 111 | } |
110 | - } | |
112 | + } | |
111 | 113 | } |
112 | 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 | 226 | #region MaintenanceConsoleXmlProcessor class |
117 | 227 | public class MaintenanceConsoleXmlProcessor : XmlParser | ... | ... |