public RespuestaMetodoTop10Gifs SelectTop10GifsCache() { Log objLog = new Log(); string Codigo = "000"; string Mensaje = "OK"; List <GifImage> Imagenes = new List <GifImage>(); String fqdnSILO1 = ConfigurationManager.AppSettings["fqdnSILO"]; int tcpSILO1 = int.Parse(ConfigurationManager.AppSettings["tcpSILO"]); DataSet oDS = new DataSet(); try { //Se define la configuración y se instancia el FrontEnd (Cliente del SILO) ClientConfiguration clientConfig = new ClientConfiguration { GatewayProvider = ClientConfiguration.GatewayProviderType.Config }; //Para ello usaremos la dirección IPv4 que nos resuelva el DNS IPHostEntry ipHostInfo = Dns.GetHostEntry(fqdnSILO1); IPAddress ipSILO1 = ipHostInfo.AddressList.FirstOrDefault(a => a.AddressFamily == AddressFamily.InterNetwork); clientConfig.Gateways.Add(new IPEndPoint(ipSILO1, tcpSILO1)); IClusterClient client = new ClientBuilder().UseConfiguration(clientConfig).Build(); //Se realiza la conexión al SILO client.Connect().Wait(); //Se define el objeto objRemoto para referenciar el grain de la interfaz IGIFSGrain del SILO IGIFSGrain objRemoto = client.GetGrain <IGIFSGrain>(0); //Definimos el DataSet oDS y registramos en el mismo, el DataSet de noticias de la cache, que se //obtiene del método "LeerNoticias", declarado en el SILO objRemoto.CargarGIFSALaCache().Wait(); oDS = objRemoto.LeerGIFSDesdeLaCache().Result; //Se cierra la conexión con el SILO client.Close(); if (oDS.Tables.Count > 0) { DataTable tbl = oDS.Tables[0]; foreach (DataRow Registro in tbl.Rows) { int Id = int.Parse(Registro["Id"].ToString()); int num_accesos = int.Parse(Registro["num_accesos"].ToString()); string nombrearchivo = Registro["nombrearchivo"].ToString(); byte[] archivo = (byte[])Registro["archivo"]; GifImage Imagen = new GifImage(); Imagen.Id = Id; Imagen.NumAccesos = num_accesos; Imagen.Nombre = nombrearchivo; Imagen.Imagen = archivo; Imagenes.Add(Imagen); } } } catch (Exception exc) { Codigo = "999"; Mensaje = String.Format("Error. Detalles: {0}", exc.Message); } RespuestaMetodoTop10Gifs Respuesta = new RespuestaMetodoTop10Gifs(); Respuesta.CodigoRetorno = Codigo; Respuesta.MensajeRetorno = Mensaje; Respuesta.Imagenes = Imagenes; LogSelectTop10Gifs(objLog, Respuesta); return(Respuesta); }