【问题标题】:Why do my instances recycle when trying to store sessions in co-located Azure cache?为什么我的实例在尝试将会话存储在同一位置的 Azure 缓存中时会回收?
【发布时间】:2012-08-21 10:07:17
【问题描述】:

我运行一个 ASP.Net MVC3 应用程序,并按照 this Windows Azure How-To 了解如何将我的会话存储在 Windows Azure 中的共存缓存中。

我已经安装了提到的 Nuget 包,并将必要的信息应用到了我的 web.config。 Web 角色设置为运行 2 个小型实例,并使用 30% 的共存缓存。

当我部署到 Azure 时,我的实例只是回收。通过与其中一个实例的远程桌面连接,我在日志中发现了这两个似乎相关的事件:

CacheStatusIndicator 服务意外终止。它已经完成了 这 1 次。 1000年将采取以下纠正措施 毫秒:重启服务。

CacheService 服务意外终止。它已经做到了 1 时间。 60000将采取以下纠正措施 毫秒:重启服务。

但是,我找不到太多这方面的信息。

有没有人知道我在这里可能遗漏了什么?

【问题讨论】:

  • 过去我在使用 Azure 缓存时遇到过问题。在此处等待答复时向 Microsoft 提交支持票,MS 可能会更快。
  • @danludwig 感谢您的回复,我会试试看!

标签: asp.net asp.net-mvc session azure azure-caching


【解决方案1】:

我非常确定您的角色缺少一些参考,因此您会看到来自 CacheStatusIndicator 的此类消息。您是否已验证您的角色确实将所有模块/引用设置为“将本地复制为 true”,因此它们都是部署包的一部分。主要是一个 MVC3 应用程序,您可能需要手动设置应用程序 MVC 特定引用属性以将本地复制为 true 以解决此问题。

【讨论】:

  • 感谢您的回复!不幸的是,我所有的引用都已经设置为复制本地,所以我担心这不应该是问题。
【解决方案2】:

现在我花了我共同的时间来处理这个问题,最后它似乎奏效了。不确定到底是哪一部分解决了问题,但我会总结一下我所做的更改,以防其他人在某个时候遇到同样的问题。

  1. 在调试此问题时,我还将我的应用程序从 MVC3 更新到了 MVC4。不确定这是否与解决此问题有关,但至少这是我所做的更改之一。
  2. 我注意到 IntelliTrace 服务引发了另一个异常,因此我在部署中禁用了该异常并重新部署了应用程序(我的猜测是这个问题实际上是导致实例循环的原因。

微软支持部门对此问题的回应:

我正在解决您的部署问题,我从 CacheService.exe 获得了内存转储

这是被抛出的异常

CLR 异常类型:System.TypeInitializationException “'Microsoft.ApplicationServer.Caching.AzureCommon.AzureUtility' 的类型初始化程序抛出 一个例外。” ModLoad:000007feea010000 000007feea0fa000
D:\Windows\Microsoft.NET\Framework64\v4.0.30319\diasymreader.dll * 错误:找不到符号文件。默认为 D:\windows\system32\KERNEL32.dll 导出符号 - ntdll!ZwWaitForMultipleObjects+0xa: 00000000`76f5739a c3
回复

在以下情况下可能会发生此命名空间的异常:

  • 您在 ServiceConfiguration 上设置了 Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString 设置以使用本地存储模拟器
  • 在 web.config 上,<dataCacheClients> 部分的标识符值未设置为正确的角色名称
  • 在极少数情况下,如果您同时安装了 SDK 1.6 和 1.7,这可能会导致在构建项目时出现一些混淆的 DLL。

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 2015-10-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多