2012-09-04 52 views
3

我是尝试以使用Memcached.ClientLibrary。我能够使它工作,除了一些点击之后(甚至在我第一次看到页面之前),我都会得到这个奇怪的错误,在搜索它时我找不到任何信息。Memcached .Net客户端BufferedStream错误

错误消息:如果底层流是不可搜索读缓冲器不为空

无法写入一个BufferedStream。确保此BufferedStream下的流可以在此BufferedStream上寻找或避免交织读取和写入操作。

堆栈跟踪:

[NotSupportedException: Cannot write to a BufferedStream while the read buffer is not empty if the underlying stream is not seekable. Ensure that the stream underlying this BufferedStream can seek or avoid interleaving read and write operations on this BufferedStream.] 
System.IO.BufferedStream.ClearReadBufferBeforeWrite() +10447571 
System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count) +163 
Memcached.ClientLibrary.SockIO.Write(Byte[] bytes, Int32 offset, Int32 count) in C:\devroot\memcacheddotnet\trunk\clientlib\src\clientlib\SockIO.cs:411 
Memcached.ClientLibrary.SockIO.Write(Byte[] bytes) in C:\devroot\memcacheddotnet\trunk\clientlib\src\clientlib\SockIO.cs:391 
Memcached.ClientLibrary.MemcachedClient.Set(String cmdname, String key, Object obj, DateTime expiry, Object hashCode, Boolean asString) in C:\devroot\memcacheddotnet\trunk\clientlib\src\clientlib\MemCachedClient.cs:766 
Memcached.ClientLibrary.MemcachedClient.Set(String key, Object value, DateTime expiry) in C:\devroot\memcacheddotnet\trunk\clientlib\src\clientlib\MemCachedClient.cs:465 
Yuusoft.Julian.Server.Models.Utils.Caching.CacheWrapper.Add(CacheKey key, T o, CacheDependency dependencies, Nullable`1 expirationTime, CacheItemRemovedCallback callBack) 

我的代码初始化(静态构造函数):

 SockIOPool pool = SockIOPool.GetInstance(); 
     pool.SetServers(CacheWrapper.Servers); 

     pool.InitConnections = 3; 
     pool.MinConnections = 1; 
     pool.MaxConnections = 50; 

     pool.SocketConnectTimeout = 1000; 
     pool.SocketTimeout = 3000; 

     pool.MaintenanceSleep = 30; 
     pool.Failover = true; 

     pool.Nagle = false; 
     pool.Initialize(); 

//代码来设置(第二个是一个erroing - 但不是在第一点击?!)

 MemcachedClient mc = new MemcachedClient(); 
     mc.Set(key, o, expirationTime.Value); 

//代码得到

 MemcachedClient mc = new MemcachedClient(); 
     object o = mc.Get(key); 
+0

ü可以发布您的代码? – DarthVader

+0

@DarthVader,发布我的代码。你有什么想法?有什么东西可以让我指出正确的方向? –

+0

@FabioMilheiro如果这个问题得到解决,请发布您的解决方案 –

回答

1

除了这种例外,以下两种情况例外也存在于我的memcached log4net的日志Memcached.ClientLibrary的(Error storing data in cache for key:<key with spaces>Exception thrown while trying to get object from cache for key:<key with spaces>),我是能够通过确保memcached的关键,解决所有这些 三个例外不包含任何空格。

参考:https://groups.google.com/forum/#!topic/memcached/4WMcTbL8ZZY

Memcached的版本: memcached的-win32-1.4.4-14