Ich habe einen WCF-Dienst erstellt, um eine Nachricht an einen MSMQ zu senden. Ich kann ihn ausführen und es sieht so aus, als ob die Nachricht gesendet wurde. Ich habe überprüft und die Warteschlange ist keine Transaktionswarteschlange. Die Sicherheit ist offen, so dass jeder Nachrichten senden kann, aber ich frage mich, ob es andere Orte gibt, an denen Sicherheit eingerichtet werden kann? Hier ist mein Code, den ich benutze.Senden von Nachrichten an MSMQ mit einem WCF-Dienst
Dim mq As MessageQueue
Dim msg As Message
Dim queueName As String = "webdevbvm.labsafety.com\emailsubscriptions"
Try
msg = New Message("Test")
msg.Priority = MessagePriority.Highest
If (MessageQueue.Exists(queueName)) Then
mq = New MessageQueue(queueName)
msg.ResponseQueue = mq
msg.UseJournalQueue = True
msg.Label = "Test Message"
msg.Body = "This is only a test"
mq.Send(msg)
Console.WriteLine("Message sent.")
End If
Catch ex As MessageQueueException
Console.WriteLine("MSMQ Error: " + ex.ToString())
Catch ex As Exception
Console.WriteLine("Error: " + ex.ToString())
Finally
mq.Close()
End Try
Ich bekomme keine Fehler, aber ich sehe die Nachrichten in meiner ausgehenden Warteschlange von der Maschine, auf dem das Programm ausgeführt wird. Es zeigt an, dass die Queue existiert und wenn ich den Queue-Namen in einen nicht existierenden Queue-Namen ändere, geht es nicht in die IF-Anweisung, daher weiß ich, dass die Queue die Datei gerade nicht sendet. Wenn es hilft, führe ich das Programm lokal auf einem Laptop aus und die Warteschlange, die es sendet, ist auch auf einem Windows 2003 Server.
Sehen Sie die "Nachricht gesendet." von Ihrem console.writeline Befehl? –
Was passiert, wenn die Warteschlange nicht existiert? Ru-Ro ...... Boom. (psst: füge ein Häkchen ein, um die Queue zu erstellen, falls sie nicht existiert Oder handle das als Fehler). –
Entfernte WCF-bezogene Tags – SteveC