网站使用memcached进行缓存,页面代码、配置文件均确定无异常,但总是无法保存缓存,查日志发现这样的记录:
2011-06-13 12:45:55 [1] ERROR Memcached.ClientLibrary.SockIOPool (null) - Attempting to get SockIO from uninitialized pool!
理解为未初始化SockIO pool缘故,刚开始以为系统应用程序池,查看没有异常,后才发现针对memcachedClient 要初始化Memcached.ClientLibrary.SockIOPool 才可以使用的,于是在 Application_start(Global.asax文件中)添加如下初始代码:
// 在应用程序启动时运行的代码
char[] separator = { ',' };
string[] serverlist = ConfigurationManager.AppSettings["Memcached.ServerList"].Split(separator);
// initialize the pool for memcache servers
try
{
Memcached.ClientLibrary.SockIOPool pool = Memcached.ClientLibrary.SockIOPool.GetInstance();
pool.SetServers(serverlist);
pool.InitConnections = 3;
pool.MinConnections = 3;
pool.MaxConnections = 50;
pool.SocketConnectTimeout = 1000;
pool.SocketTimeout = 3000;
pool.MaintenanceSleep = 30;
pool.Failover = true;
pool.Nagle = false;
pool.Initialize();
}
catch (Exception err)
{
//这里就可以用Log4Net记录Error啦!
}
测试,运行正常