msmq Problem

04/12/2007 - 11:07 von THoppe | Report spam
Hi NG

Ich habe ein Problem mit der peek methode des Queueobjektes. Wenn ich mit
peek() meine Messagequeue abfrage funzt das wunderbar. aber wenn ich der Peek
methode noch eine timespan, cursor und peekaction mitgeben dan bekomme ich
eine Fehlermeldung die da sagt


An die Funktion wurde ein ungültiges Handle übergeben.

code

TimeSpan span = new TimeSpan(50000000);
System.Messaging.Cursor cor;
MessageQueue myQueue = new MessageQueue(".\ewqueuehoppe");
cor = myQueue.CreateCursor();
myQueue.DenySharedReceive = true;
myQueue.Formatter = new XmlMessageFormatter(new Type[] {
typeof(string) });
System.Messaging.Message msg =
myQueue.Peek(span,cor,PeekAction.Next);
MessageBox.Show(msg.Body.ToString());
myQueue.Close();

Bin für jede Hilfe dankbar

Gruß Thorsten
 

Lesen sie die antworten

#1 Frank Dzaebel
04/12/2007 - 13:17 | Warnen spam
Hallo Thorsten,

Ich habe ein Problem mit der peek methode des Queueobjektes. Wenn ich mit
peek() meine Messagequeue abfrage funzt das wunderbar. aber wenn ich der Peek
methode noch eine timespan, cursor und peekaction mitgeben dan bekomme ich
eine Fehlermeldung die da sagt [...]



Message Queuing gibt diesen Fehler zurück, wenn das
angegebene Warteschlangenhandle ungültig ist.

Das wird wahrscheinlich an "DenySharedReceive = true" liegen:

[MessageQueue.DenySharedReceive-Eigenschaft (System.Messaging)]
http://msdn2.microsoft.com/de-de/li...redreceive(VS.80).aspx

Versuch mal folgendes:

TimeSpan span = new TimeSpan(0,0,3);
System.Messaging.Cursor cor;
MessageQueue myQueue = new MessageQueue(".\ewqueuehoppe");
cor = myQueue.CreateCursor();
myQueue.Send("Hallo Thorsten");
// myQueue.DenySharedReceive = true;
myQueue.Formatter = new XmlMessageFormatter(new Type[]
{typeof(string) });
System.Messaging.Message msg myQueue.Peek(span, cor, PeekAction.Current);
MessageBox.Show(msg.Body.ToString());
myQueue.Close();


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen