memcache存放类的实例,多个程序读不到啊?
public partial class _Default : System.Web.UI.Page  
     {  
         public static MemcachedClient mc = null;  
         protected void Page_Load(object sender, EventArgs e)  
         {  
             string id = "1";  
             String[] serverlist = { "127.0.0.1:11211" };  
             int[] weights ={ 3 };  
             //初始化池  
             SockIOPool pool = SockIOPool.GetInstance();  
             pool.SetServers(serverlist);  
             pool.Nagle = false;  
             pool.Initialize();  
             mc = new MemcachedClient();  
             mc.EnableCompression = false;  
             gbtopic obj = new gbtopic(id, 1, id+"合理咯电456thu");//gbtopic 是自定义的类  
             mc.Set(id, obj);  
             Response.Write(mc.KeyExists(id).ToString());//这里显示true,键值“1”存在  
         }  
     }  
[Serializable]  
     public class gbtopic  
     {  
         public string id;  
         public string title;  
         public int num;  
         public gbtopic(string id, int num, string title)  
         {  
             this.id = id;  
             this.num = num;  
             this.title = title;  
         }  
     }  
====================================================  
以上都没问题,一个asp.net网页创建类,存入Memcached,可以得到。但是我新建一个命令行程序  
class Program  
     {  
         public static MemcachedClient mc = null;  
         static void Main(string[] args)  
         {  
             string id = "1";           
             String[] serverlist = { "127.0.0.1:11211" };  
             int[] weights ={ 3 };  
             //初始化池  
             SockIOPool pool = SockIOPool.GetInstance();  
             pool.SetServers(serverlist);  
             pool.Nagle = false;  
             pool.Initialize();  
             mc = new MemcachedClient();  
             mc.EnableCompression = false;  
             Console.WriteLine(mc.KeyExists(id).ToString())//这里显示false,为什么都是key为“1”这里读不到  
             Console.ReadLine();  
         }  
     }  
我又做了试验,把那个asp.net网页 的mc.Set(id, obj);  
改成mc.Set(id, "strobj");//只存放一个string  
再运行命令行程序,就显示true了。  
问题总结:  
存放类的实例,本工程内可以正常读取,另一个程序读不到。但存在简单变量string,int等,多个程序都能读到。  
显示false的期间我用telnet 127.0.0.1 11211  
get 1  
试过,key为1的确实存在,但另一个程序mc.KeyExists(id)就是显示false,为什么?
------解决方案--------------------
这个是程序集跨域的问题,如果你实在要实现在上面保存类的实例的话,可以考虑使用Remoting之类的机制来实现
------解决方案--------------------
你把对象标记为可序列化试试
------解决方案--------------------有深度啊!作个记号。