2009-01-19 86 views
3

我們有一個運行在負載均衡服務器實例上的應用程序,因此它被配置爲使用ASP.NET會話狀態服務,該服務在我們的一個數據庫服務器上運行。雖然我們的應用程序的兩個實例都可以成功連接到狀態服務器,但會話狀態數據的更改並未反映在它們兩者之間。 FI,如果我叫Session.Add('SomeKey', SomeData)在服務器A,這不是被反射,如果我再嘗試訪問Session['SomeKey']服務器B調試ASP.NET會話狀態服務器問題

Session.SessionID返回兩臺服務器上相同的價值,我已經檢查,他們都使用在machine.config的machinekey部分中配置相同的驗證密鑰和解密密鑰值。我甚至嘗試在應用程序web.config中指定這些值。

我應該尋找哪些可能導致這些症狀的其他事情,以及人們可以推薦哪些步驟來幫助調試此問題?

回答

5

幫助:

http://support.microsoft.com/kb/325056

維護會話狀態跨越 不同的Web服務器的Web場中, 網站 (例如,\ LM \ W3SVC \ 2)在 Microsoft Internet信息 服務(IIS的應用程序的路徑)元數據庫必須是 ,與 Web場中的所有Web服務器相同。該案例也需要爲 ,因爲應用程序路徑 區分大小寫。

+0

感謝您的鏈接。應用程序路徑是相同的(包括大小寫)。我試過將IIS配置從一臺服務器克隆到另一臺服務器,但問題仍然存在。 – Cleggy 2009-01-19 01:21:24

+2

好吧,我的原始「克隆」並不夠深,似乎。 iiscnfg/copy修復了它 – Cleggy 2009-01-19 01:58:44

3

我最終使用iiscnfg/copy將IIS元數據庫的完整副本從一臺服務器執行到另一臺服務器,並解決了問題。感謝E.J Brennan讓我走上了榮耀之路。