2010-10-28 10 views
8

Tengo algunos servicios WCF con atributos predefinidos FaultContract. Cuando se lanzan las excepciones FaultException<TDetail>, envían StackTrace, Source y otra información potencialmente no guardada.WCF FaultException sin enviar StackTrace

¿Es posible devolver sólo:

  • Detalle (desde el TDetail genérico)
  • FaultMessage
  • FaultCode
  • (y posiblemente) FaultReason

Respuesta

3

¿Usted ha intentado rodar su propia excepción de falla usando IErrorHandler? También asegúrese de que en el archivo de configuración de la aplicación, el atributo IncludeExceptionDetailInFaults esté configurado en falso y this podría ser útil para las mejores prácticas.

+2

IncludeExceptionDetailInFaults ya es falso. Según tengo entendido, IncludeExceptionDetailInFaults solo se aplica a las excepciones no controladas que aún no son del tipo FaultException . Ya implementé un IErrorHandler para aplicar una política de que todas las operaciones tengan una base FaultContract asignada y que automáticamente inicie sesión y vuelva a lanzar excepciones no controladas en ese tipo de falla base. Lo que no sé es por qué WCF está pasando más información de la que es definido en el FaultContract. Actualmente estoy experimentando este comportamiento con wsHttpBinding y un cliente SOAP. – reifnir

+3

Resulta que no hubo ningún problema con el envío de StackTrace al cliente. (El problema estaba en frente del teclado.) Estaba malinterpretando la respuesta recibida de WCFStorm en el panel de respuesta. La stacktrace y la fuente eran solo información sobre el cliente y no sobre el servidor. IncludeExceptionDetailInFaults definitivamente solo se aplica a excepciones que no son "bien conocidas". Gracias por la ayuda de Terrance. – reifnir

+0

Lo siento, no pude ayudar más ... pero bienvenido. – Terrance

Cuestiones relacionadas