Laden...

WCF: Retry-Konfiguration bei netMsmqBinding

Erstellt von chrized vor 13 Jahren Letzter Beitrag vor 13 Jahren 835 Views
C
chrized Themenstarter:in
33 Beiträge seit 2008
vor 13 Jahren
WCF: Retry-Konfiguration bei netMsmqBinding

Hallo zusammen

Eine Frage zu WCF und MSMQ:

Mit WCF verbinde ich zwei Applikationen, dazwischen als Puffer eine Message Queue (MSMQ 4.0). Dazu verwendete ich das netMsmqBinding. Probleme bereitet mit der Retry-Modus im Fehlerfall.

Sobald ein Fehler auf Serviceseite auftritt, wird die Message in die Queue gestellt und gemäss Retry-Konfiguration wieder herausgeholt. Das ist gut so für unerwartete Errors. Wie schaff ich es aber, dass gewisse erwartete Fehler auf Serviceseite abgefangen werden und sie nicht in den Retry-Modus kommen sondern aus der Queue verschwinden?

Folgende Idee, ich fange die Exceptions ab und werfe jene weiter, die in den Retry-Modus gelangen sollen. Geht so aber nicht, alles wird gemäss Retry-Config behandelt. Wieso?


try
{
   //tu was
}
catch(MyException mex)
{
   //Erwarteter Fehler...loggen und aus Queue entfernen
}
catch(Exception ex)
{
   //Unerwarteter Fehler -> Retry
   throw;
}

Jemand eine Idee?

Viele Grüsse
Christian

S
8.746 Beiträge seit 2005
vor 13 Jahren

"Erwartete Fehler" sollten eben keine Exceptions sein...

C
chrized Themenstarter:in
33 Beiträge seit 2008
vor 13 Jahren

Wie würdest du es dann angehen?

T
146 Beiträge seit 2004
vor 13 Jahren

Wieso nicht:

bool hatfunktioniert=false;
try
{
//tu was
es ging -> hatfunktioniert = true
}
catch(MyException mex)
{
//Erwarteter Fehler...loggen und aus Queue entfernen
}
finally
{
//Unerwarteter Fehler -> Retry
if !hatfunktioniert
retry
throw;
}