我将把我的ASP.NET MVC4应用程序作为冗余Azure应用程序托管。在会话期间,应用程序执行计算成本高昂的操作,生成不可序列化的对象。对象的创建是可重复的;每次我需要对象时,我都可以执行昂贵的操作,但我更愿意在第一次执行此操作并保存对象以供以后重用。
我想在Azure中使用标准的分布式会话状态机制来存储通常的会话状态信息,但该机制要求会话数据可序列化。我可以使用另一种机制来缓存昂贵的,不可序列化的对象吗?
鲍勃
答案 0 :(得分:2)
Windows Azure提供的所有分布式缓存服务当前都需要序列化,不仅需要共享缓存,还需要专用/共存缓存。
但是如果要在内存缓存中使用,则没有必要进行序列化。但这不适合横向扩展,如果你只有1个实例,你可能无法拥有azure SLA。
所以我的建议是优化序列化并尝试使用azure缓存。
答案 1 :(得分:1)
这些对象是否必须存储在集中存储中,还是可以将它们存储在“InProc”会话状态中?
如果没有,我担心你需要将它们序列化为某些东西(SQL Azure,文件,app-fabric缓存等)。
因此要么找到一种方法将它们序列化为可持久的东西,要么将它们存储在RAM中,每个Web服务器上都有一个额外的副本