我正在尝试在我的工作者角色实例之间设置缓存。为此,我向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>
我已经仔细检查过我的缓存工作者角色的名称确实是“缓存”。在我的缓存工作者角色和正常工作者角色上,我在配置选项卡的“缓存”选项卡中设置了以下内容:
我目前正在Azure Compute Emulator上运行它。我可以看到我的worker角色和缓存工作者角色都已启动并运行。是否有一些配置设置我缺少或设置不正确?谢谢!
答案 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
我希望这可以帮助您解决问题,如果您还有其他需要,请告诉我。