0

我正在尝试在我的工作角色实例之间设置缓存。为此,我在 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 上运行它。我可以看到我的工作角色和缓存工作角色都已启动并正在运行。是否有一些我遗漏或设置不正确的配置设置?谢谢!

4

1 回答 1

0

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

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

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

于 2013-08-06T07:07:35.383 回答