将Azure辅助角色连接到专用缓存工作者角色

时间:2013-08-06 06:38:15

标签: caching azure azure-worker-roles

我正在尝试在我的工作者角色实例之间设置缓存。为此,我向Azure项目添加了一个新的缓存工作者角色。但是,当我尝试使用以下代码访问默认缓存时:

_dataCacheFactory = new DataCacheFactory();
var cache = _dataCacheFactory.GetDefaultCache();

我从未获得默认缓存,并且呼叫超时。我从Azure文档中复制了我的app.config文件,并在标识符标记中添加了我的角色名称:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
  </configSections>

  <dataCacheClients>
    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="Cache" />
      <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
    </dataCacheClient>
  </dataCacheClients>

  <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

我已经仔细检查过我的缓存工作者角色的名称确实是“缓存”。在我的缓存工作者角色和正常工作者角色上,我在配置选项卡的“缓存”选项卡中设置了以下内容:

  • 启用缓存
  • 缓存群集设置设置为“专用角色”
  • 存储帐户凭据:UseDevelopmentStorage = true

我目前正在Azure Compute Emulator上运行它。我可以看到我的worker角色和缓存工作者角色都已启动并运行。是否有一些配置设置我缺少或设置不正确?谢谢!

1 个答案:

答案 0 :(得分:0)

您好也许应该尝试使用Inter Role Communication设置它们之间的连接,您可以在以下stackoverflow网站中找到有关如何进行角色间通信的答案: How to do inter-role communication with Azure?

您还可以在以下链接中找到更多详细信息: http://blogs.msdn.com/b/avkashchauhan/archive/2011/10/30/communication-between-windows-azure-roles.aspx

我希望这可以帮助您解决问题,如果您还有其他需要,请告诉我。