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);
        }