none
Error al intentar devolver datos de un Web Service en un proyecto SilverLight RRS feed

  • Pregunta

  • Hola buenas tardes,

    como dice el título estoy trabajando en un proyecto silverlight en el cual tengo agregado un web service que se conecta a una base de datos y me devuelve una serie de datos en un array de strings []. El web service en cuestión lo he probado con un web part de sharepoint y funciona correctamente, pero cuando intento recoger el array de strings desde el proyecto silverlight me casca.

    Mi código es el siguiente:

     

    public MainPage(string strConsulta, string strKeyConexion)
    {
    	try
    	{
      		InitializeComponent();
        	BasicHttpBinding bind = new BasicHttpBinding();
        	EndpointAddress endpoint = new EndpointAddress("http://localhost:7070/Service1.asmx");
    		miServicioSilver.Service1SoapClient miCubo = new miServicioSilver.Service1SoapClient(bind, endpoint);
        	miCubo.Comprobar_ConexionCompleted += new EventHandler<SLSave2Image.miServicioSilver.Comprobar_ConexionCompletedEventArgs>(miCubo_Comprobar_ConexionCompleted);
        	miCubo.Comprobar_ConexionAsync();
    		miCubo.Devolver_Valores_ConsultaCompleted += new EventHandler<SLSave2Image.miServicioSilver.Devolver_Valores_ConsultaCompletedEventArgs>(miCubo_Devolver_Valores_ConsultaCompleted);
    		miCubo.Devolver_Valores_ConsultaAsync(strKeyConexion, strConsulta);
    	}
      	catch (Exception ex)
      	{
       	 	MessageBox.Show("Error constructor:"+ex.Message.ToString());
      	}
    }
    private void miCubo_Comprobar_ConexionCompleted(object sender, miServicioSilver.Comprobar_ConexionCompletedEventArgs e)
    {
      try
      {
       MessageBox.Show(e.Result.ToString());
      }
      catch (Exception ex)
      {
       MessageBox.Show("Error Comprobando conexión: " + ex.Message.ToString(), "Error Devolviendo columnas", MessageBoxButton.OK);
      }
    }
    private void miCubo_Devolver_Valores_ConsultaCompleted(object sender, miServicioSilver.Devolver_Valores_ConsultaCompletedEventArgs e)
    {
      try
      {
       miServicioSilver.ArrayOfString miArray = e.Result;
       this.strDatosEnFilas = miArray.ToArray();
      }
      catch (Exception ex)
      {
       MessageBox.Show("Error Devolviendo valores consulta: " + ex.Message.ToString(), "Error Devolviendo valores", MessageBoxButton.OK);
      }
    }
    

     

    El error que me devuelve es el siguiente:

    "Exception durante la operación. El resultado no es válido. Compruebe la exception InnerException para obtener más detalles."

    He intentado agregar esta excepción pero el proyecto no lo reconoce. Bueno la cuestión es que no tiene sentido que en un web part funcione sin problemas y en un proyecto silverlight no sea capaz ni de sacar un "hola mundo" (es lo que devuelve el método Comprobar_Conexion). Había pensado que podría ser un tema de permisos ya que cuando saco los datos necesito acceder a un cubo de reporting, pero cuando ya ni sale el hola mundo me da que va a ser que no van por ahí los tiros....

    ¿a alguien le ha pasado algo parecido?

    un saludo y gracias de antemano!!

     

     

    • Editado akale_82 martes, 26 de octubre de 2010 7:19 corrección del código
    lunes, 25 de octubre de 2010 15:41

Todas las respuestas

  • Hola sería bueno arreglaras el codigo, debido a que no se ve claramente, se te copio también el html.

    por otra parte bueno sería ver el código del WebService el cual retorna el string[].

    Espero pongas correctamente la info así, pudamos ayudarte!!

    Talves

         miServicioSilver.ArrayOfString miArray = e.Result as String[];

    Ayude pero no se!!!

    También si es posible ponle un punto de ruptura en tu webservice!!!

    Saludos!!


    Coding "La lucha diaria" - D3S........D4S
    "Ya tengo Blog :D": Nueva Entrada Silverlight
    lunes, 25 de octubre de 2010 18:18
  • Hola akale.

    Bueno, la excepcion por si sola no dice mucho, de modo que yo probaria lo siguiente:

    1.- insertar la URL en el navegador donde lo estas probando: http://localhost:7070/Service1.asmx

    2.- agregar la referencia web a silverlight desde VS para que se inserte en el archivo client.config, de modo que no tengas que establecer el endpoint manualmente. ( si funciona, ya sabemos que se esta estableciendo mal el endpoint)

    3.- realizar una traza del servicio, yo me hice una clase, pero no se donde la tengo, de modo que te pongo un link por donde puedes comenzar y si encuentro el codigo lo posteare: http://msdn.microsoft.com/en-us/library/bb885203(v=VS.90).aspx

    con estos 3 puntos deberias de poder sacar algo en claro.

    Ya contaras como te ha ido.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/
    martes, 26 de octubre de 2010 18:09
  • Ok gracias por vuestra ayuda, voy a probarlo.

    Un saludo!

     

    viernes, 29 de octubre de 2010 7:49
  • akale_82   tengo el mismo problema y no he podido resolverlo , me preguntaba si ya lograste resolver el problema .?
    lunes, 12 de noviembre de 2012 16:10