2012-02-23 28 views
2

我在本地iis上創建了兩個不同的非常簡單的應用程序(ASP .NET)和主機。 這兩個應用程序在兩個選項卡中的相同瀏覽器中打開。在第一個應用程序(AppA)中,我在會話(Session [「name」] =「john」)中存儲了一些數據,而在第二個應用程序(AppB)中,我讀取了該值。當我探索cookie(使用FireCookie)時,我看到兩個應用程序的SessionID是相同的。另外,在這兩個應用程序中,SessionID都被打印出來並且是相同的。當我嘗試從會話(使用正確的密鑰)在AppB中獲取此值時,會話爲空,但會話ID仍然相同。在AppA會話中數據仍然存在。SessionID相同,但會話數據不相同

爲什麼當兩個應用程序要求的Web服務器(使用相同的會話ID)返回數據會話數據有什麼不同?

回答

2

會話不共享,因爲它是不同的應用程序。所以即使他們得到相同的身份證,他們也不會「認識」彼此。看看這篇文章的可能解決方案http://www.codeguru.com/article.php/c19357

+0

好的。請參閱本文http://www.codeproject.com/Articles/32545/Exploring-Session-in-ASP-Net 的段落ID。他說:...當客戶端請求數據時,ASP.NET會查找會話標識並檢索相應的數據.... – SilverDeveloper 2012-02-23 10:55:00

+0

@SilverDeveloper:他們關鍵的一點是這兩個應用程序有完全不同的會話存儲。對於某些會話提供程序,您可能可以執行此操作(例如,如果它們都是基於SQL的或基於SQL的話),但通常它會有效地鍵入應用程序和會話ID上的會話數據。 – Chris 2012-02-23 12:29:19

+1

也許在這種情況下存儲數據庫中的會話是一個想法? – Cerveser 2012-02-23 12:54:33

相關問題