Quand j'initialiser mon client de se connecter au cache AppFabric, il semble prendre de manière incompatible jusqu'à 30 secondes pour se connecter sur la ligne suivante:initialisation AppFabric DataCacheFactory prend souvent ~ 30 secondes
factory = new DataCacheFactory(configuration);
Voir toute Init() code ci-dessous - principalement tiré de here. Je dis de façon incohérente parce que parfois cela prend 1 seconde et d'autres fois 27, 28, etc ... secondes. J'ai un site asp.net utilisant le cache AppFabric - qui vit dans une boîte différente (sur le même domaine). Tout fonctionne très bien, sauf pour le temps de connexion incohérent. Quand il se connecte, tout est bon - j'ai juste besoin de le connecter régulièrement en ~ 1 seconde :) ... Pensées?
public static void Init()
{
if (cache == null)
{
Stopwatch sw = new Stopwatch();
sw.Start();
try
{
//Define Array for 1 Cache Host
List<DataCacheServerEndpoint> servers = new List<DataCacheServerEndpoint>(1);
var appFabricHost = ConfigurationManager.AppSettings["AppFabricHost"];
var appFabricPort = ConfigurationManager.AppSettings["AppFabricPort"].ParseAs<int>();
//Specify Cache Host Details
// Parameter 1 = host name
// Parameter 2 = cache port number
servers.Add(new DataCacheServerEndpoint(appFabricHost, appFabricPort));
TraceHelper.TraceVerbose("Init", string.Format("Defined AppFabric - Host: {0}, Port: {1}", appFabricHost, appFabricPort));
//Create cache configuration
DataCacheFactoryConfiguration configuration = new DataCacheFactoryConfiguration();
//Set the cache host(s)
configuration.Servers = servers;
//Set default properties for local cache (local cache disabled)
configuration.LocalCacheProperties = new DataCacheLocalCacheProperties();
//Disable tracing to avoid informational/verbose messages on the web page
DataCacheClientLogManager.ChangeLogLevel(System.Diagnostics.TraceLevel.Off);
//Pass configuration settings to cacheFactory constructor
factory = new DataCacheFactory(configuration);
//Get reference to named cache
cache = factory.GetCache(cacheName);
TraceHelper.TraceVerbose("Init", "Defined AppFabric - CacheName: " + cacheName);
}
catch (Exception ex)
{
TraceHelper.TraceError("Init", ex);
}
finally
{
TraceHelper.TraceInfo("Init", string.Format("AppFabric init took {0} seconds", sw.Elapsed.Seconds));
}
if (cache == null)
{
TraceHelper.TraceError("Init", string.Format("First init cycle took {0} seconds and failed, retrying", sw.Elapsed.Seconds));
UrlShortener.Init(); // if at first you don't succeed, try try again ...
}
}
}
Je suis heureux de fournir plus d'informations si ce serait utile? – downatone