2011-11-30 142 views
2

我已經做了一些事情,但我不知道接下來我需要做什麼。ASP.NET SQL Server會話與負載均衡

我在具有相同域(http://dev.**.com)的服務器A和B中部署相同的站點。

他們有相同的machinekey,我在網站的web.config中聲明。

會話狀態指向相同的ASPState數據庫。

從以下屏幕截圖可以看出,這兩個網站分別有appIdAppName。這意味着這兩個網站不能共享會話。

有人能告訴我接下來要做什麼嗎?任何幫助將不勝感激。

enter image description here

我需要聲明的應用程序的名稱?但是我應該在哪裏申報?

+0

再次添加。我應該使appName相同。 –

回答

2

您可以結帳following article

+0

謝謝,但似乎沒有回答這個問題。 –

+0

它不適合你嗎? –

+0

嗨達林,我的眼睛一定有一些問題。它在我的解決方案中工作。 謝謝! –

0

更改您的[TempGetAppID]存儲過程。

例如 SET @appName = LOWER(@appName) - > SET @appName = LOWER(APP_NAME())

APP_NAME()返回connectioned應用程序名稱。 「應用程序名稱= YourAppName;」設置爲connectionString的值。

希望得到這個幫助!

1

我想提出一個更簡單的解決方案,但我想我晚點吃晚了。 :)

IIS 7配置數據庫路徑當然是您看到的AppName,並從中散列AppId。如果兩個IIS旨在共享會話,並且它們的AppNames(元數據庫路徑)不同,您將無法共享會話。有很多建議可以修改生成名稱的存儲過程,但這對我來說似乎是一種可怕的破解。儘管我喜歡代碼項目的解決方案,即避開存儲過程,但還有更簡單的方法!

進入每臺Web服務器上的IIS 7管理器。選擇您希望通過IIS共享狀態的網站。點擊高級設置關閉。 輸入唯一值ID,並在每個IIS上使用相同的值。重新啓動每個網站和鮑勃的你的叔叔。