我想問一下Cache對象的奇怪行爲。我使用Cache以SessionID作爲關鍵字存儲特定於用戶的數據(更準確地說,用於會話)。緩存包含子域的不同數據
由於某些原因,緩存中的數據對於不同的子域看起來並不相同。我設法讓SessionID在所有子域中保持相同: - 我在web config中的httpCookies元素中設置了域屬性,如「.domain.com」。 - 我使用this技巧來確保SessionID cookie存儲在所有子域中。 - 我將sessionState模式設置爲SQLServer。
我確保SessionID對於所有子域名都是相同的。更有意思的是,當我使用會話狀態代替緩存時,一切正常。會話返回所有子域的預期數據。但是當我使用SessionID作爲關鍵字的緩存時,緩存爲不同的子域返回不同的數據。
當然,我可以將它保持在會話狀態,但我不是很喜歡它,並儘量避免它,只要我可以。
任何想法,將不勝感激。
如果你底層的緩存是HttpRuntimeCache,還有每個進程的一個(即每個應用程序池) 。這是一個主機頭站點在單個應用程序池中的單個服務器上運行嗎?如果不是,則有多個HttpRuntimeCache實例。 – Jamey
所有子域指向相同的IP。我想這是同一個應用程序池。 – MrHenkey