Ich habe einen WCF-Client verwendet, um MMSQ-Nachricht an WCF-Dienst zu senden, bevor WCF-Dienst die MMSQ-Nachricht verarbeitet, möchte ich den Nachrichtentext überprüfen.
Nachdem ich den Inhalt des msmq Nachrichtentextes überprüft habe, habe ich unten das Ergebnis erhalten.
Aber ich habe nicht die genaue Zeichenfolge erhalten.
Im Folgenden finden Sie Definition von WCF-DienstWCF-MSMQ-Nachricht von C#
[ServiceContract]
public interface IMSMQService
{
[OperationContract(IsOneWay = true)]
void ShowMessage(string msg);
}
I unten Methode Nachrichtentext abzurufen, und es Ausgabe leer, wenn ich Uhr auf ms hinzufügen, konnte ich
„\ 0 \ U0001 erhalten \ 0 \ u0001 \ u0004 \ u0002 (net.msmq: // vdi-v-tazho/privat/TestQueue \ u0003 \ aV \ u0002 \ v \ u0001s \ u0004 \ v \ u0001a \ u0006V \ bD \ n \ u001e \ 0 + http://tempuri.org/IMSMQService/[email protected] \ u0017VsDebuggerCausalityData \ bAhttp: //schemas.microsoft.com/vstudio/diagnostics/servicemodelsink < ϣ-lN FoJ 0 u \ u0006 \ "\ 0 \ 0 \ 0 \ 0 \ u0017 \ 0i8 C I \ 7^Q A \ u0012 w} \ f A \ u000f \ r ޮ pe \ 0 \ t \ 0 \ 0D \ f \ u00e0e \ 0 (net.msmq: // vdi-v-tazho/privat/TestQueue \ u0001V \ u000e @ \ vShowMessage \ b \ u0013http: //tempuri.org/@ \ u0003msg \ \ u0004test \ U0001 \ U0001 \ U0001"
//message.Formatter = new XmlMessageFormatter(new String[] { });
//StreamReader sr = new StreamReader(message.BodyStream);
string ms = "";
//while (sr.Peek() >= 0)
//{
// ms += sr.ReadLine();
//}
message.Formatter = new ActiveXMessageFormatter();
string result = System.Text.Encoding.UTF8.GetString(message.Body as byte[]);
StreamReader reader = new StreamReader(message.BodyStream);
ms = reader.ReadToEnd();
MessageBox.Show(ms);