我在我的电脑上尝试了新 sdk 附带的新 azure preview。我放置了一个带有缓存预览的工作角色,并放置了一个具有 30% 缓存大小的协同定位角色。在我的控制器上,我输入了以下代码:
[OutputCache(Duration=int.MaxValue, VaryByParam="none")]
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
ViewBag.Id = Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CurrentRoleInstance.Id;
return View();
}
现在我通过具有 4 个实例的模拟器运行 worker 角色。结果是,每次我看到一个不同的 id - 这意味着输出缓存永远不会与所有 4 个实例一起使用(要清楚,我将输出缓存配置为与缓存预览一起使用)。
只有当我将额外的缓存工作者角色作为专用角色时,一切才开始正常工作。
我的问题是:我是否需要额外的工作人员角色才能真正使缓存预览正常工作?- 这意味着不使用 azure appfabric 缓存的权衡是放置额外的机器
我做了什么工作,它应该与网络角色一起工作吗?
谢谢
编辑:这是我的 web.config 的另一部分
<dataCacheClients>
<tracing sinkType="DiagnosticSink" traceLevel="Error" />
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="NugetTest" />
<!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
</dataCacheClient>
如果我的标识符有 NugetTest (这是我的网络角色 - 我有 4 个),每次我切换机器时我都会得到不同的缓存。如果我将标识符更改为我的工人角色,我会得到结果