c# - 检测 IIS 何时在 Azure 中回收

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

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

感谢您的帮助。

最佳答案

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

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

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

关于c# - 检测 IIS 何时在 Azure 中回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13661667/

相关文章:

c# - 改变数组中的元素

c# - 对使用 LINQ 查询 SQL Server 数据库 : edmx? dbml 感到困惑?数据集?

c# - StructureMap 动态加载插件 Dll

c# - C#中的隐式类型转换

ajax - IIS 的奇怪 AJAX 重定向 401 问题

iis - 你认为微软永远不会在 IIS 中支持经典的 asp

c# - 从 Action 运行多个请求并等待一个结束

.net - Entity Framework 迁移: PrimaryKey

c# - 如何使用反射调用泛型类的静态属性?

c# - 如何通过 web.config 将 http 重定向到 https 并将 www 重定向到非 www?