Ich versuche, die Giftnachrichten in WCF mit MSMQ-Transport zu behandeln.Poison Message-Behandlung in WCF MSMQ 4.0
Ich folgte dem unten stehenden Link für die Erstellung der ursprünglichen und Gift-Dienste. statt Selbst Hosting, ich war Gastgeber den 2 servces in IIS mit einem einzigen Host-Projekt
http://msdn.microsoft.com/en-us/library/aa395218.aspx
Der einzige Unterschied ist.
Die Konfiguration der beiden Dienste ist unten.
Beide Dienste werden ordnungsgemäß ausgeführt.
Das Problem ist, wenn die Nachricht in die Gift-Warteschlange gestellt wird, verarbeitet der Gift-Service die Nachricht nicht. Ich habe die Nachrichten in der Poison-Warteschlange beobachtet, sie richten sich nur an den ursprünglichen Dienst. Wie kann der Giftdienst sie dann verarbeiten? Nachdem ich MSDN durchlaufen habe, habe ich erfahren, dass der WCF-Kanal dieses Problem durch das Festlegen des Dienstverhaltenattributs behoben hat. Der folgende Paragraph erklärt das Gleiche.
"Nachrichten in der Warteschlange für Nachrichtenmeldungen sind Nachrichten, die an den Dienst gerichtet sind, der die Nachricht verarbeitet, der sich vom Endpunkt des Poison-Nachrichtendiensts unterscheiden kann. Wenn der Nachrichtendienst Meldungen aus der Warteschlange liest WCF-Channel-Layer findet die Nichtübereinstimmung in Endpunkten und sendet die Nachricht nicht In diesem Fall wird die Nachricht an den Auftragsverarbeitungsdienst adressiert, wird aber vom Giftnachrichtendienst empfangen, um die Nachricht auch dann weiter zu empfangen, wenn die Nachricht adressiert ist Zu einem anderen Endpunkt müssen wir ein ServiceBehavior hinzufügen, um Adressen zu filtern, bei denen das Übereinstimmungskriterium jedem Dienstendpunkt entspricht, an den die Nachricht adressiert ist. Dies ist erforderlich, um Nachrichten erfolgreich zu verarbeiten, die Sie aus der Warteschlange für nicht verarbeitete Nachrichten lesen. "
Aber mein Giftdienst verarbeitet die vergifteten Nachrichten nicht?
Ich bin nicht in der Lage, das Problem herauszufinden.
Hmmmm, Sie können nur HTTP-Bindungen in IIS hosten. Meinst du WAS? –