我正在Azure中开发一个Web角色的WCF服务。我在memmory中构建了一个索引,并使用它来提供wcf请求。我的问题是,iis回收后,这个索引已经从内存中消失了。有没有办法检测回收事件,并将索引再次复制到内存中?
Thansk的帮助。
答案 0 :(得分:3)
是的,您可以在 Application_End 事件中检测到它(在Global.asax.cs中)。
更好的解决方案是不将索引放入内存中。由于您使用的是Web角色,因此可以使用Windows Azure缓存(您无需为此付费)。通过使用Windows Azure缓存,您可以将索引存储在内存中,但不能存储在应用程序池的进程中。它仍然超级快,它可以在应用程序池回收中存活下来。
另一个优点是,在Windows Azure缓存中存储索引时,同一部署中的所有实例和角色都可以使用相同的缓存。这意味着它们都将使用您存储在其中的相同索引。