缓存子域名

时间:2011-01-31 14:08:58

标签: asp.net caching

有子域名: sub1.domain.ru,sub2.domain.ru,sub3.domain.ru,sub4.domain.ru 。在默认页面上有一个代码:

protected void Page_Load(object sender, EventArgs e)
{
    string subdomain = Cache[key] as string;
    if (subdomain != null)
    {
        Label1.Text = "Your subdomain is :" + subdomain;
    }
    else
    {
        Cache[key] = GetSubDomainName();
        Label1.Text = "Your subdomain is :" + Cache[key] as string;
    }
}

用户是否会在不同的子域中看到他们的子域名( sub1.domain.ru,sub2.domain.ru,sub3.domain.ru,sub4.domain.ru )?

2 个答案:

答案 0 :(得分:2)

如果我可以重新解释这个问题,我想你是在询问与页面所在的应用程序相关联的Cache对象是否跨子域共享。

答案是,这取决于:

  • 如果每个子域都部署为 不同的 AppDomain ,他们会有 他们自己的记忆空间(缓存 会话将不会被共享)。注意:即使它们共享相同的应用程序池,也是如此。

  • 如果您将此设置为单个 AppDomain 接受多个主机标头, 那么它可以访问它 页面在不同的子域下但是 拥有一个缓存的副本 所有要求。

答案 1 :(得分:0)

但我认为缓存是全球性的。您应该使用Session而不是......

如果你这样做

cache["subdomain"] = getMySubDomain()

每次都会被覆盖,如果你这样做了

dim sd as string = cache["subdomain"]

它将为您提供独立于当前登录用户的最后保存的子域...

为什么不尝试使用其他浏览器。