Hallo
habe versucht eine Message queue zu erzeugen auf server und client, damit kann der server mit Client komunizieren..
die Code auf Server
System.Messaging.MessageQueue mq;
if(MessageQueue.Exists(@".\Private$\MyQueue"))
mq = new System.Messaging.MessageQueue(@".\Private$\MyQueue");
else
mq = MessageQueue.Create(@".\Private$\MyQueue");
code auf dem Client Seite:
this.messageQueue1.Formatter = new System.Messaging.XmlMessageFormatter(new string[0]);
this.messageQueue1.Path = "Formatname:DIRECT=TCP:192.168.2.40\\Private$\\MyQueue";
192.168.2.40 ist mein IP.
wenn ich auf dem Client eine Nachrichten an Server schicke, bekomme ich immer Error
{"The queue does not exist or you do not have sufficient permissions to perform the operation."}
was habe ich falsch gemacht ? vermutte ich auf dem Client
"Formatname:DIRECT=TCP:192.168.2.40\Private$\myQueue";
Gruss
Stefan
Hrm, würde mal auf den ersten Blick das Format vermuten:
Denke hällst in der queue nur nen string, daher folgendes Format:
... new XmlMessageFormatter(new Type[] {typeof(string})
und dann eben noch das hier, hinterlegst die NAchricht ja auf dem Server und nicht auf deinen Client - Evtl. habe ich das auch verkehrt herum verstanden?
Formatname:DIRECT=TCP:<ServerIP>\\Private$\\myQueue
Das hier sind die Formate:
FormatName:Public= 5A5F7535-AE9A-41d4-935C-845C2AFF7112
FormatName:DIRECT=SPX: NetworkNumber; HostNumber\QueueName
FormatName:DIRECT=TCP: IPAddress\QueueName
FormatName:DIRECT=OS: MachineName\QueueName
Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(
Hallo Andreas.May
danke für deine Hilfe. noch eine kleine Frage. Kann public Queue auf windows Xp erzeugt werden ?
Die folgende information habe ich im Netz gefunden. Link
Queue Type Description
Public queue Registered in directory services, can be located by any Message
QueuinNG applications
ich habe so verstanden, dass die pulbic Queue nicht auf Windows Xp erzeugt werden ? oder
Gruss
Stefan
Hallo
Oder Private Queue geht nur die Local verbindung. mein Client und server haben verschiedene IP, deswegen ??? 🤔 🤔 🤔
Gruss
Stefan
Also ist ne weile her bei mir, hatte das nur mal in Verbindung mit einen SQL 200 Server um Nachrichten von der SQL Datenbank auf dem Server zu erzeugen, gebraucht. Evtl. habe ich das Projekt sogar noch zu Hause
Private Queue geht nur die Local verbindung, sprich wenn eine private Queue erzeugst auf einem Rechner, kann nur dieser Rechner diese Nachricht verarbeiten. Das macht grade bei einer Datenbank Sinn - früher gabs ja keine TransactionNotification wie sie der SQL Server 2005 anbietet. Daher konnte man anhand des MSMSQ Dienstes Add's Delete's oder Update's auf der Datenbankseite mitbekommen für die jeweiligen Tabellen und schichtete diese Nachrichten wieder auf C# Code um.
Für deine Zwecke reichen public Queues..
Habe vorrhin auch den Fehler nicht gesehen, muss dann natürlich public$ heissen und nicht private$ 🙂
Gibt nen guten MS Artikel dazu:Link.
Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(