Azure内存会话状态?

时间:2012-11-26 02:07:05

标签: asp.net session azure

我将把我的ASP.NET MVC4应用程序作为冗余Azure应用程序托管。在会话期间,应用程序执行计算成本高昂的操作,生成不可序列化的对象。对象的创建是可重复的;每次我需要对象时,我都可以执行昂贵的操作,但我更愿意在第一次执行此操作并保存对象以供以后重用。

我想在Azure中使用标准的分布式会话状态机制来存储通常的会话状态信息,但该机制要求会话数据可序列化。我可以使用另一种机制来缓存昂贵的,不可序列化的对象吗?

鲍勃

2 个答案:

答案 0 :(得分:2)

Windows Azure提供的所有分布式缓存服务当前都需要序列化,不仅需要共享缓存,还需要专用/共存缓存。

但是如果要在内存缓存中使用,则没有必要进行序列化。但这不适合横向扩展,如果你只有1个实例,你可能无法拥有azure SLA。

所以我的建议是优化序列化并尝试使用azure缓存。

答案 1 :(得分:1)

这些对象是否必须存储在集中存储中,还是可以将它们存储在“InProc”会话状态中?

如果没有,我担心你需要将它们序列化为某些东西(SQL Azure,文件,app-fabric缓存等)。

因此要么找到一种方法将它们序列化为可持久的东西,要么将它们存储在RAM中,每个Web服务器上都有一个额外的副本