2010-10-28 15 views
8

Ich habe einige WCF-Dienste mit vordefinierten FaultContract-Attributen. Wenn die Ausnahmen FaultException<TDetail> ausgelöst werden, senden sie StackTrace, Source und andere möglicherweise nicht gespeicherte Informationen.WCF FaultException ohne Senden von StackTrace

Ist es möglich, nur zurück:

  • Detail (von der generischen TDetail)
  • FaultMessage
  • FaultCode
  • (und möglicherweise) FaultReason

Antwort

3

Haben Sie versucht, rollen Ihre eigene Fehlerausnahme mit IErrorHandler? Stellen Sie außerdem sicher, dass in Ihrer App-Konfigurationsdatei das Attribut IncludeExceptionDetailInFaults auf false gesetzt ist und this für die besten Praktiken hilfreich sein kann.

+2

IncludeExceptionDetailInFaults ist bereits falsch. Wie ich es verstehe, gilt IncludeExceptionDetailInFaults nur für nicht behandelte Ausnahmen, die nicht bereits vom Typ FaultException sind. Ich habe bereits einen IErrorHandler implementiert, um eine Richtlinie zu erzwingen, die allen Operationen einen Basis-FaultContract zugewiesen hat und automatisch unbehandelte Ausnahmen in diesem Basisfehlertyp protokolliert und erneut ausgibt. Was ich nicht weiß ist, warum WCF mehr Informationen weitergibt als es ist definiert im FaultContract. Dieses Verhalten tritt derzeit bei wsHttpBinding und einem SOAP-Client auf. – reifnir

+3

Es stellte sich heraus, dass es kein Problem gab, wenn StackTrace zurück an den Client gesendet wurde. (Das Problem lag vor der Tastatur.) Ich interpretierte die Antwort von WCFStorm im Antwortfenster falsch. Der Stacktrace und die Quelle waren nur Informationen über den Client und nicht über den Server. IncludeExceptionDetailInFaults wurde definitiv nur auf Ausnahmen angewendet, die nicht "gut bekannt" sind. Danke für die Hilfe Terrance. – reifnir

+0

Tut mir leid, ich könnte nicht mehr helfen ... aber Ihre Begrüßung. – Terrance

Verwandte Themen