0

为 Windows Azure 缓存配置 ASP.NET 输出缓存提供程序

我对 applicationName 属性有点困惑。

这是否意味着我可以使用多个应用程序共享同一个 Azure 缓存(只要我不最大化事务、数据传输和连接)?

换句话说,只要 applicationName 不同,相同的缓存键就不会在不同的 Web 应用程序之间发生冲突?

1 GB 缓存 110.00 美元比 10 X 128 MB 缓存 45.00 美元便宜很多。

谢谢你的光!

4

3 回答 3

0

如果我们考虑开箱即用缓存的架构设计,那么当您在云中运行同一应用程序的多个实例并使用开箱即用缓存时,要使所有实例在输出缓存方面保持同步。

当您有多个应用程序 1) / Root 2) /production 3) /test 您真的不想在两个不同的应用程序之间混合输出缓存,因为输出缓存可能会根据应用程序名称在缓存端点分配完整页面和部分页面缓存(如果已配置)或 IIS 系统提供的 AppID。

如果您在同一个 ASP.NET Web 角色应用程序中使用多个站点,那么您可以使用 dataCacheClient 根据具有相同应用程序的不同站点的不同主机头来分离输出缓存,这将是首选解决方案。

于 2012-05-14T16:23:12.953 回答
0

基于 MSDN 链接,ApplicationName 在内部用于生成 Cache Key。如果未提供应用程序密钥,则使用 HttpRuntime.AppDomainAppId。现在开发团队有责任更新 IIS 元数据库,以便每个实例中的 HttpRuntime.AppDomainAppId 解析为相同的值。

简而言之,ApplicationName 名称用于提供额外的隔离层,如果 ApplicationName 在不同的应用程序中匹配,则这些应用程序将使用相同的缓存。

于 2012-05-15T11:53:17.647 回答
0

此处提到了会话状态和输出缓存的 applicationName 标记的用法差异:http: //msdn.microsoft.com/en-us/library/hh361708.aspx

在此处提出的问题的上下文中,applicationName 标记可以方便地在同一角色的多个实例之间缓存数据。

于 2012-07-02T10:50:16.910 回答