2010-10-28 16 views
8

Ho alcuni servizi WCF con attributi FaultContract predefiniti. Quando vengono generate le eccezioni FaultException<TDetail>, inviano StackTrace, Source e altre informazioni potenzialmente non salvate.WCF FaultException senza invio StackTrace

E 'possibile restituire solo:

  • Dettaglio (dal TDetail generica)
  • FaultMessage
  • FaultCode
  • (e possibilmente) FaultReason

risposta

3

Hai provato a rotazione la tua propria eccezione di errore usando IErrorHandler? Assicurati anche che nel file di configurazione dell'app, l'attributo IncludeExceptionDetailInFaults sia impostato su falso e, this potrebbe essere utile per le migliori pratiche.

+2

IncludeExceptionDetailInFaults è già falso. Come ho capito, IncludeExceptionDetailInFaults si applica solo alle eccezioni non gestite che non sono già di tipo FaultException . Ho già implementato un IErrorHandler per applicare un criterio a cui tutte le operazioni hanno assegnato un FaultContract di base e che registra e ripianifica automaticamente le eccezioni non gestite in quel tipo di errore di base. Quello che non so è il motivo per cui WCF sta passando più informazioni di definito nel FaultContract. Attualmente sto riscontrando questo comportamento con wsHttpBinding e un client SOAP. – reifnir

+3

Si scopre che non vi era alcun problema con StackTrace che veniva rinviato al client. (Il problema era davanti alla tastiera.) Stavo interpretando erroneamente la risposta ricevuta da WCFStorm nel riquadro Risposta. Lo stacktrace e l'origine erano solo informazioni sul client e non sul server. IncludeExceptionDetailInFaults si applica definitivamente solo alle eccezioni che non sono "ben note". Grazie per l'aiuto Terrance. – reifnir

+0

Mi dispiace non aver potuto aiutare di più ... ma il tuo benvenuto. – Terrance