2011-01-31 66 views
0

有子域名: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)?

回答

0

但我認爲緩存是全球性的。您應該使用會話,而不是...

如果你

cache["subdomain"] = getMySubDomain() 

將被覆蓋每次,如果你這樣做

dim sd as string = cache["subdomain"] 

它會給你上次保存的子域獨立於當前登錄用戶...

爲什麼你不試試不同的瀏覽器。

+0

「else」有`if`。我調整了格式以使其更加清晰。 – 2011-01-31 14:27:55

2

如果我可以重新解釋這個問題,我想你問的是Cache對象與頁面所在的應用程序是否在子域之間共享。

答案是,這取決於:

  • 如果每個子域部署爲 不同的AppDomain,他們將有 自己的內存空間(緩存會議將不會被共享)。注意:即使它們共享相同的應用程序池,也是如此。

  • 如果您在本設置爲一個單一的 的AppDomain接受多個主機頭, 那麼就可以在不同的子域訪問此 頁面,但 有訪問 的緩存的一個副本由所有請求。