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
"Erwartete Fehler" sollten eben keine Exceptions sein...
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;
}