Ich habe einen Agenten und einen Server in verschiedenen Domänen. Der Server fungiert als MSMQ-Server und der Agent als MSMQ-Client. Ich verwende das Dienstprogramm mqsender, das Teil der MSMQ-Tools ist.
Mein Problem ist, dass eine Nachricht nicht zugestellt wird, wenn ich den Formatstring HTTP:// verwende (MSMQ ist mit HTTP-Unterstützung installiert). Die Verwendung des Formatstrings OS: funktioniert problemlos.
Bei der Verwendung von HTTP werden die Nachrichten sofort in die Warteschlange für tote Briefe verschoben und die Klasse wird auf Unbekannt gesetzt.
Also, das funktioniert:
mqsender.exe /c:10 /j:dead /f:Direct=OS:il-mark-w2k3\private$\test
Und das ist nicht der Fall:
mqsender.exe /c:10 /j:dead /f:Direct=http://il-mark-w2k3/msmq/private$/test
Ich habe überprüft, ob das virtuelle Verzeichnis MSMQ existiert. Wie kann ich die MSMQ-Operation verfolgen, um zu verstehen, was vor sich geht?
Gracias.
EDITAR
- Alle Befehle funktionieren wie erwartet, wenn sie lokal auf dem Server ausgeführt werden.
- Navigieren zu
http://il-mark-w2k3/msmq/private$/test
im Browser auf dem Agenten (und dem Server) führt zu 501 - Header-Werte geben eine Methode an, die nicht implementiert ist . Derselbe Fehler tritt auf, wenn Sie zu folgenden Seiten navigierenhttp://il-mark-w2k3/msmq
. Ich nehme an, das ist in Ordnung, schließlich ist es nicht 404 - Nicht gefunden richtig?
EDIT2
Es ist mir gelungen, das Problem zu lösen. Dem IIS fehlte die anonyme Authentifizierung, was durch die Beobachtung des Protokolls offensichtlich wurde - der HTTP-Fehler 401.2 war vorhanden. Nachdem sie aktiviert war, funktionierte alles gut. Es bleibt ein Rätsel, warum MSMQ die Klasse Unbekannt auf die toten Nachrichten? Auf einem anderen Rechner erzeugt die gleiche Einrichtung Fehler : 401 was viel mehr Sinn macht.