none
Problema con las Excepciones FaultException RRS feed

  • Pregunta

  • Estoy generando una prueba de publicación y recogida de un servicio WCF donde servicio y cliente están en proyectos distintos, despues de publicar el servicio y recoger los datos en el cliente sin problemas estoy ahora la recogida en cliente de las excepciones FaultException y simulo un error dentro de un método con el siguiente código:

     

    public Misdatos Suma(int uno, int dos)

    {

    Misdatos MD = new Misdatos();

    try

    {

    MD.valor1 = uno;

    MD.valor2 = dos;

    MD.suma = uno + dos;

    if (MD.suma > 100) throw new Exception();

    }

    catch (Exception ex)

    {

    throw new FaultException("Error la operaci

    ón supera el valor máximo");

    }

    return MD;

    }

    y teoricamente al lanzar la FaultException se debía detener la ejecución y el código ya no llegar al return MD; pero esto no sucede, la excepcioón activa la depuración en el servicio con el mensaje de que no se ha controlado la excepcion de tipo FaultException,  y el cliente no detecta tampoco el disparo de la excepción e intenta recoger los valores de MD (null) y da otra excepción a nivel de cliente, que falta ?

    

    viernes, 19 de agosto de 2011 18:46

Todas las respuestas

  • Hola,

     

    Mira este enlace http://msdn.microsoft.com/en-us/library/ff649234.aspx

     

    concretamente este parametro en el config includeExceptionDetailInFaults="true"

     

    Saludos,

     

     


    phurtado
    viernes, 19 de agosto de 2011 22:59
  • Hola,

    primero: debes decorar el método del servicio que va a lanzar la excepción con

    [FaultContract(FaultException)]
    

    Eso en la interfaz del servicio, no en el método de la clase en sí.

     

    A continuación, deberás marcar en el Web.config del servicio que pueden interpretarse las excepciones (por defecto está puesto), en el siguiente código:

      <behaviors>
       <serviceBehaviors>
        <behavior>
         <serviceMetadata httpGetEnabled="True" />
         <serviceDebug includeExceptionDetailInFaults="False" httpHelpPageEnabled="True" />
        </behavior>
       </serviceBehaviors>
      </behaviors>
    



    viernes, 26 de agosto de 2011 9:42