检测IIS何时在Azure中回收

时间:2012-12-01 17:12:32

标签: c# .net iis azure azure-web-roles

我正在Azure中开发一个Web角色的WCF服务。我在memmory中构建了一个索引,并使用它来提供wcf请求。我的问题是,iis回收后,这个索引已经从内存中消失了。有没有办法检测回收事件,并将索引再次复制到内存中?

Thansk的帮助。

1 个答案:

答案 0 :(得分:3)

是的,您可以在 Application_End 事件中检测到它(在Global.asax.cs中)。

更好的解决方案是不将索引放入内存中。由于您使用的是Web角色,因此可以使用Windows Azure缓存(您无需为此付费)。通过使用Windows Azure缓存,您可以将索引存储在内存中,但不能存储在应用程序池的进程中。它仍然超级快,它可以在应用程序池回收中存活下来。

另一个优点是,在Windows Azure缓存中存储索引时,同一部署中的所有实例和角色都可以使用相同的缓存。这意味着它们都将使用您存储在其中的相同索引。