SharedCache es un Sistema de cache distribuido de alto rendimiento y un sistema de replicación de caché para aplicaciones. NET que se ejecutan en las granjas de servidores, nosotros lo usamos hace tiempo y la verdad que va muy bien.
Ahora que hemos pasado parte de la aplicación al cloud y levantamos servidores según necesidad nos hemos encontrado que a los clientes del cache no se les podía definir la dirección del servidor por nombre, tenia que ser por IP, eso nos limitaba ya que al levantar un nuevo nodo, o al rehacer un servidor obteníamos otra IP y teníamos que ir a actualizar la configuración de todos los clientes.
La solución pasa por hacer una pequeña modificación en el código del cliente:
1- Busca SharedCache.WinServiceCommon/Sockets/SharedCacheTcpClient.cs.
2- Busca el constructor SharedCacheTcpClient(string host, int port) y modifícalo para que quede así:
public SharedCacheTcpClient(string host, int port) { #region Access Log #if TRACE { Handler.LogHandler.Tracking("Access Method: " + this.GetType().ToString() + "-" + ((object)MethodBase.GetCurrentMethod()).ToString() + "; ;";); } #endif #endregion Access Log this.host = host; this.port = port; //Emilio: Comprobamos si es una IP o es un nombre de host IPAddress address; bool isIpAdress = (IPAddress.TryParse(host, out address)); this.serverConnection = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); if (isIpAdress) { var endpoint = new IPEndPoint(IPAddress.Parse(this.host), this.port); this.serverConnection.Connect(endpoint); } else { this.serverConnection.Connect(host,port); } this.serverConnection.NoDelay = true; }
3- Compilas la librería SharedCache.WinServiceCommon y la machacas en los clientes.






