【发布时间】:2012-12-01 17:12:31
【问题描述】:
我正在 Azure 中以 Web 角色开发 WCF 服务。我在内存中建立了一个索引,并用它来服务 wcf 请求。我的问题是,在 iis 回收后,这个索引从内存中消失了。有什么办法,可以检测到回收事件,再把索引复制到内存中?
感谢您的帮助。
【问题讨论】:
-
或者禁用自动回收?
标签: c# .net iis azure azure-web-roles
我正在 Azure 中以 Web 角色开发 WCF 服务。我在内存中建立了一个索引,并用它来服务 wcf 请求。我的问题是,在 iis 回收后,这个索引从内存中消失了。有什么办法,可以检测到回收事件,再把索引复制到内存中?
感谢您的帮助。
【问题讨论】:
标签: c# .net iis azure azure-web-roles
是的,您可以在 Application_End 事件中检测到它(在您的 Global.asax.cs 中)。
更好的解决方案是不要将索引放在内存中。由于您使用的是 Web 角色,因此您可以使用 Windows Azure 缓存(您无需为此支付额外费用)。通过使用 Windows Azure 缓存,您可以将索引存储在内存中,但不能存储在应用程序池的进程中。它仍然非常快,并且可以在应用程序池回收中存活下来。
另一个优点是,当您将索引存储在 Windows Azure 缓存中时,同一部署中的所有实例和角色都将能够使用相同的缓存。这意味着它们都将使用您存储在其中的相同索引。
【讨论】: