Asp.net Azure的HttpRuntime.Cache设置?

Asp.net Azure的HttpRuntime.Cache设置?,asp.net,.net,azure,caching,memory,Asp.net,.net,Azure,Caching,Memory,我正在Azure上使用HttpRuntime.Cache进行内存缓存 问题是内存已满-然后它达到Azure的90%百分比限制,Azure认为该角色不健康并重新启动它-导致整个站点关闭 现在我找到了EffectivePercentagePhysicalMemoryLimit属性,在Azure上它似乎被设置为98%,因此高于90%的“不健康”限制 如何更改HttpRuntime.Cache上的此限制?该属性是只读的 是否可以将Azure自动重启百分比调整到更高一点 使用内存缓存是否还有其他建议的设

我正在Azure上使用
HttpRuntime.Cache
进行内存缓存

问题是内存已满-然后它达到Azure的90%百分比限制,Azure认为该角色不健康并重新启动它-导致整个站点关闭

现在我找到了EffectivePercentagePhysicalMemoryLimit属性,在Azure上它似乎被设置为98%,因此高于90%的“不健康”限制

  • 如何更改
    HttpRuntime.Cache
    上的此限制?该属性是只读的
  • 是否可以将Azure自动重启百分比调整到更高一点
  • 使用内存缓存是否还有其他建议的设置?还有其他我应该使用的类吗?我几乎找不到与Azure结合的信息。大多数文章都讨论了一种单独的缓存服务,用于解决数据是否需要在多个实例之间保持一致的问题

需要明确的是:我需要内存缓存-我不需要通过Redis共享缓存,因为数据不太需要一致性。

您可以通过在web.config中使用的
percentagePhysicalMemoryUsedLimit
属性更改
有效PercentagePhysicalMemoryLimit


EffectivePercentagePhysicalMemoryLimit
属性可以使用应用程序配置文件中缓存(ASP.NET设置架构)元素的
percentagePhysicalMemoryUsedLimit
属性设置。如果未设置
percentagePhysicalMemoryUsedLimit
属性,则缓存算法将确定缓存的最大大小,并计算
EffectivePercentagePhysicalMemoryLimit
属性

您可以获得有关文档的更多信息:


另一个选项是禁用Azure自动重启机制。它被调用,您可以通过将
网站\u PROACTIVE\u AUTOHEAL\u ENABLED
设置为
False
来禁用它:

  • 转到portal.azure.com并转到要禁用其功能的Web应用
  • 在“设置”下,转到“应用程序设置”
  • 在应用程序设置下添加“
    WEBSITE\u PROACTIVE\u AUTOHEAL\u ENABLED
    ”并将其设置为“
    False
  • 就这样!主动式自动修复已禁用

  • Hi@CyrillDurand,谢谢你的回答。认为已经有一半的帮助了。我仍然在寻找完美的Azure设置。也就是说,仅使用60%的内存感觉像是对其他40%内存的巨大浪费。@DirkBoer我添加了一种禁用自动重启机制的方法